我有一个名为 Element 的基类。一些其他类(比如 Label 和 Image)都继承了这个类。
现在我有一个分派类,其中包含以下方法:
public class Dispatcher {
public static AbstractPropertyEditor<Label> createEditor(Label e) {
...
}
public static AbstractPropertyEditor<Element> createEditor(Element e) {
...
}
}
如果我现在有一个Label实例(它继承自Element),并且我想将其传递给createEditor(),为什么会调用最通用的方法(第二个方法)?难道不应该调用最具体的方法(createEditor(Label e))吗?
我绝对需要带有Element参数的方法,以便“捕获”所有那些实现了Element但在此分派类中没有自己特定方法的类。
我正在使用Java 6,如何“修复”这个问题?
编辑:好吧,我必须承认这与泛型完全无关。但那是我第一次遇到它的地方。
谢谢和问候。
Label
而不是Element
的变量? - Tom Hawtin - tacklineT extends Element
,其中T
恰好是Label
?) - Tom Hawtin - tackline