Java Generics - реализует и расширяет
Я пытаюсь написать что-то вроде
public class A implements B<T implements C> {}
и
public abstract class M<I extends P> extends R<I extends P> implements Q<I extends P> {}
но я получаю ошибки, такие как множественные маркеры и синтаксическая ошибка на токене, ожидается. Пожалуйста, дайте мне знать, как правильно это сделать.
Ответы
Ответ 1
Если у вас есть интерфейсы в дженериках, вам все равно придется использовать ключевое слово extends
.
В вашем случае, если вы знаете, что T
будет:
public class A<T extends C> implements B<T> {}
Если вы этого не сделаете, и вам просто нужно реализовать B
с типом C
:
public class A implements B<C> {}
Для второй части, как только вы определили I
, вы можете использовать ее, как и в других ваших общих типах:
public abstract class M<I extends P> extends R<I> implements Q<I> {}
Ресурсы:
Ответ 2
В общих ограничениях нет ключевого слова implements
. Это только extends
Кроме того, вы должны указать параметр типа только в определении класса, а не в супертипах. То есть.
public class A<T extends C> implements B<T> {}