Взаимно ссылающиеся параметры типа, компилируемые в JDK6, но не в 7?

Следующий код компилируется с использованием JDK6 (я пробовал 1.6.0_24)

class XY<A extends XY<A, B>, B extends XY<B, A>> { } 

Но при компиляции под JDK7 (например, 1.7.0) я получаю эту ошибку:

XY.java:1: error: type argument B is not within bounds of type-variable A
class XY<A extends XY<A, B>, B extends XY<B, A>> {
                                      ^
  where B,A are type-variables:
    B extends XY<B,A> declared in class XY
    A extends XY<A,B> declared in class XY
1 error

Кто-нибудь может указать , было ли это преднамеренным изменениемдженериков Java?

10
задан oxbow_lakes 2 April 2012 в 13:52
поделиться