Общий интерфейс принимает значение "Я" в качестве параметра. Рекурсивный общий?
Отказ от ответственности: у меня нет целого опыта работы с Java Generics, но мы с коллегами провели цельный час, пытаясь расшифровать интерфейс, который был структурирован следующим образом:
interface HasAttributes<A extends HasAttributes<A, B>,
B extends HasAttributesType<B>> extends Identification<B> {
Что именно означает, когда интерфейс generic принимает параметр типа, который сам по себе? Что это делает?
Ответы
Ответ 1
В этом есть смысл - класс Java Enum является хорошим примером ситуации simliar:
public abstract class Enum<E extends Enum<E>>
implements Comparable<E>, Serializable
В есть вопрос о переполнении стека об Enum, который должен пролить свет на это конкретное использование дженериков для вас, а также ответить на это более элегантно чем я мог.