Дженерики Java, расширенные Дженерики и абстрактные классы

Определив макрос WINVER, вы отобразите набор функций, относящихся к определенной версии Windows. Например, если вы определите его как #define WINVER 0x0502, вы не сможете использовать TaskDialog , который доступен только в Windows Vista. Более подробно вы можете прочитать статью Использование заголовков Windows в MSDN.

5
задан Dan McClain 25 June 2009 в 19:17
поделиться

4 ответа

public class ProcessImpl<EventType1, EventType2> {
...
}

Поскольку ProcessImpl не расширить процесс . Ваш ProcessImpl не является производным от Process, как вы заявляете, этот параметр должен быть.

11
ответ дан 13 December 2019 в 05:41
поделиться

Вы можете сделать что-то вроде этого:

public abstract class Process<T, S> {
}

public abstract class Resource<T, S extends Process<T, S>> {
    S processor;

}

public class ProcessImpl extends Process<EventType1, ProcessImpl> {
}

public class ResourceImpl extends Resource<EventType1, ProcessImpl> {

}

Если вы ограничиваете параметр S ресурса Resource процессором, вам также необходимо правильно объявить его в классе ProcessImpl . Я не знаю, что такое EventType2 , но он должен реализовывать интерфейс процесса. Я предположил, что вы действительно хотите сказать ProcessImpl .

1
ответ дан 13 December 2019 в 05:41
поделиться

Я не вижу способа отредактировать исходную версию или прокомментировать полученные ответы без лучшего ответа.

Этот код будет существовать на веб-уровне, тип события2 определен на уровень постоянства и доступен только на уровне ядра, который существует ниже этого уровня.

Так что, к сожалению, без тесной связи, которой я бы хотел избежать, у меня нет доступа к EventType2.

0
ответ дан 13 December 2019 в 05:41
поделиться

Если вы не хотите, чтобы ваш код зависел от какого-либо существующего пакета, который содержит процесс , вы также можете ввести новый пакет интерфейса, который не зависит ни от чего в самом нижняя часть иерархии классов. (Если вы, конечно, можете изменить ограничения наследования.)

0
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: