Petite question sur les templates
Je suis tombé sur une portion de code qui ne compile pas :aie: et je ne me l'explique pas, si vous avez une explication, je suis preneur :D
Voici la chose avec, en commentaire, l'erreur donnee par Eclipse :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class TemplateQuizz
{
public class ClassA
{};
public <T> T creat(Class<? super T> typeDemande)
{
return null;
}
public ClassA method2A(Class<? extends ClassA> arg)
{
// The method creat(Class<? super T>) in the type TemplateQuizz is not
// applicable for the arguments (Class<capture#1-of ? extends TemplateQuizz.ClassA>)
ClassA objet = creat(arg); // compile error --ÎÎ
return objet;
}
public <E extends ClassA> ClassA method2B(Class<E> arg)
{
ClassA objet = creat(arg);
return objet;
} |
La question subsidiaire : pourquoi les signatures des méthodes method2A et method2B ne sont-elles pas équivalentes ? 8O