Generic метод:Как переопределить общий метод
public <T> void foo(T t);
Желаемая переопределяется метод:
public void foo(MyType t);
Что такое синтаксис Java для достижения этой цели?
Generic метод:Как переопределить общий метод
public <T> void foo(T t);
Желаемая переопределяется метод:
public void foo(MyType t);
Что такое синтаксис Java для достижения этой цели?
Лучший дизайн.
interface Generic<T> {
void foo(T t);
}
class Impl implements Generic<MyType> {
@Override
public void foo(MyType t) { }
}
interface Base {
public <T> void foo(T t);
}
class Derived implements Base {
public <T> void foo(T t){
}
}
Как вы думаете, это связано здесь? – VinayVeluri
Это ответ. Вы считаете, что это неправильно? – talex
Вероятно, он хочет иметь конкретную реализацию в методе overriden. –
Вы можете захотеть сделать что-то вроде этого:
abstract class Parent {
public abstract <T extends Object> void foo(T t);
}
public class Implementor extends Parent {
@Override
public <MyType> void foo(MyType t) {
}
}
Аналогичный вопрос был дан ответ и здесь: Java generic method inheritance and override rules
Вы понимаете, что 'MyType' здесь является общим именем параметра, а не именем существующего класса? – talex
Является ли T ограничен классом? Как и в, метод, заключенный в какой-то общий «класс» Пример {} ' –
Upio