Как реализовать “обобщённый” интерфейс в Java?

375
31 января 2017, 21:16

Допустим, требуется реализовать следующую абстракцию (приведённый код – псевдо-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
        }
    };
}
READ ALSO
Почему не выводится Toast?

Почему не выводится Toast?

Есть Presenter, а в нем код:

373
ListView, SimpleCursorAdapter или как записать строку в ListView

ListView, SimpleCursorAdapter или как записать строку в ListView

Как вставить строку в адаптер ListView?

433
Как реализовать регистрацию в Jabber?

Как реализовать регистрацию в Jabber?

Необходимо реализовать регистрацию в jabbereИспользую библиотеку Smack

418
Получаю пустой объект в контроллере spring из jsp формы

Получаю пустой объект в контроллере spring из jsp формы

Отправляю объект из jsp в spring конторллер

397