Есть ли семантическая разница между этими двумя объявлениями или это только синтаксический сахар?
class C<T extends C>
vs class C<T extends C<T>>
Предыстория: Недавно я ответил на question на дженериках с использованием подхода C<T extends C>
, а одноранговый узел предоставил аналогичный ответ на основе C<T extends C<T>>
. В итоге обе альтернативы дали тот же результат (в контексте заданного вопроса). Мне оставалось любопытно разницу между этими двумя конструкциями.
Есть ли семантическая разница? Если да, то каковы последствия и последствия каждого подхода?