У меня есть абстрактный класс с интерфейсом делегирования определенным:Java дженерик статического типа вывод
public abstract class MyAbstractClass extends AsyncLoader {
public interface MyAbstractClassDelegate<M> {
//The parameter in this method should be the concrete subtype of MyAbstractClass
public M performThisCall(MyAbstractClass concreteSubclassOfAbstractClass);
}
private MyAbstractClassLoaderDelegate delegate;
...
}
Проблема в том, я не хочу, чтобы параметр делегата быть MyAbstractClass
, вместо этого он должен быть конкретным подклассом. Зачем? Поскольку реализация делегата необходим конкретный подкласс для дальнейшей обработки, и я не хочу, чтобы бросить его ...
Я знаю, что я мог бы определить Interface
в каждый подкласс, но это будет выглядеть так же в каждый подкласс для параметра типа
EDIT
Вот только идеальное решение решения именно то, что я хотел. Большое спасибо!
public abstract class MyAbstractClass {
public interface MyAbstractClassDelegate<M, Subtype extends MyAbstractClass> {
public M myMethod(Subtype t);
}
}
Возможно ли это с Java 6 и если да - то как?
Идеально, с подтипом его работы, althoug Подтип расширяет MyAbstractClass - это то, что я хотел – Alexander