Generics et méthodes statiques
Bonjour,
je suis tombé sur un petit problème de design aujourd'hui, j'en ai donc fait un petit exemple très simple :
Code:
1 2 3 4 5 6 7
| public class Generale
{
public static void test()
{
System.out.println("test 1");
}
} |
Code:
1 2 3 4 5 6 7
| public class Ajout extends Generale
{
public static <T extends Generale> void petitTest()
{
T.test();
}
} |
Code:
1 2 3 4 5 6 7
| public class Besoin1 extends Ajout
{
public static void test()
{
System.out.println("Besoin 1");
}
} |
Code:
1 2 3 4 5 6 7
| public class Besoin2 extends Ajout
{
public static void test()
{
System.out.println("Besoin 2");
}
} |
Code:
1 2 3 4 5 6 7 8
| public class Main
{
public static void main(String[] args)
{
Besoin1.petitTest();
Besoin2.petitTest();
}
} |
Résultat :
Citation:
run:
test 1
test 1
Je pense bien comprendre que çà vienne du fait que je travail sur des méthodes statiques.
Mais j'ai 3 questions : pourquoi çà fait pas ce que je veux (à savoir : afficher les messages de Besoin1 et 2) ? pourquoi çà génère pas d'erreur de compilation ? comment contourner le problème (sachant que je ne peut pas du tout toucher au code de la classe Generale) ?
Merci d'avance.