Допустим, требуется реализовать следующую абстракцию (приведённый код – псевдо-Java):
public abstract class ChatService {
public abstract class LocalBinder</*КлассПотомок*/ extends ChatService> {
public abstract /*КлассПотомок*/ getService();
};
}
Вопрос: возможно ли реализовать это отношение в Java, и если да, то каким способом?
Пока все мои попытки решить эту проблему заводят меня в тупик в роде этого:
Класс-родитель:
public abstract class ChatService<T extends ChatService<T>> extends Service {
public class LocalBinder extends Binder {
public T getService() {
/*Допустимо ли это преобразование?*/
return (T) T.this; // Warning: Unchecked cast from ChatService<T> to T
}
};
}
Продвижение своими сайтами как стратегия роста и независимости