У меня есть базовый класс, который называется Элемент. Некоторые другие классы (например, 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-param для того, чтобы «перехватить» все те классы, которые а) реализуют Element, но не имеют своего собственного конкретного метода в этом классе диспетчеризации.
Я использую Java 6, как это исправить?
Редактировать: Хорошо, я должен признать, что это вовсе не дженерики. Но вот где я столкнулся с этим в первый раз.
спасибо и всего наилучшего