J'ai une classe de base appelée Element. D'autres classes (comme Label et Image) étendent cette classe.Priorité aux méthodes surchargées
J'ai maintenant une classe dispatching ayant les méthodes suivantes:
public class Dispatcher {
public static AbstractPropertyEditor<Label> createEditor(Label e) {
...
}
public static AbstractPropertyEditor<Element> createEditor(Element e) {
...
}
}
Si j'ai une instance d'étiquette (qui étend l'élément) et je veux transmettre à createEditor()
, pourquoi est la méthode la plus générique (le second) appelé? Ne serait-il pas normal que la méthode (createEditor(Label e)
) soit appelée?
J'ai besoin absolument la méthode avec l'élément param pour « attraper » toutes les classes qui a) mettre en œuvre des éléments mais ne disposent pas de leur propre méthode spécifique dans cette classe dispatching ..
J'utilise Java 6, comment "réparer" cela?
Editer: Bon, je dois admettre que ce n'est pas du tout des génériques. Mais c'est là que je l'ai rencontré la première fois.
Merci et salutations
Vous avez l'instance affectée à une variable de type 'Label' pas' Element'? –
(et pas de 'T extends Element' où' T' se trouve être 'Label'?) –