Ich habe eine Basisklasse namens Element. Einige andere Klassen (wie Label und Image) erweitern diese Klasse.Überladene Methoden Priorität
Ich habe jetzt eine Abfertigungs-Klasse die folgenden Methoden mit:
public class Dispatcher {
public static AbstractPropertyEditor<Label> createEditor(Label e) {
...
}
public static AbstractPropertyEditor<Element> createEditor(Element e) {
...
}
}
Wenn ich jetzt eine Instanz von Label haben (das Element erstreckt) und ich möchte es createEditor()
passieren, ist, warum die meisten generische Methode (der zweite) angerufen? Wäre es nicht normal, dass die spezifische Methode (createEditor(Label e)
) aufgerufen wird?
Ich brauche unbedingt die Methode mit dem Element-param, um „fangen“ all jenen Klassen, das Element a) implementieren, sondern ihr eigenes spezifisches Verfahren nicht in dieser Dispatching Klasse hat ..
Ich verwende Java 6, wie man das "repariert"?
Edit: Okay, ich muss zugeben, es geht überhaupt nicht um Generika. Aber da bin ich dem ersten Mal begegnet.
Danke und Grüße
Sie haben die Instanz einer Variablen vom Typ 'Label' zugewiesen, nicht' Element'? –
(und nicht von 'T extends Element' wo' T' zufällig 'Label' ist?) –