Il seguente codice compilato usando JDK6 (ho provato 1.6.0_24)Parametri di tipo reciprocamente autoreferenziali compilati sotto JDK6 ma non 7?
class XY<A extends XY<A, B>, B extends XY<B, A>> { }
Ma compilazione sotto JDK7 (ad es 1.7.0), ottengo questo errore:
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
Can qualcuno punta a se si tratta di una modifica intenzionale ai generici di Java?
Si compila bene per me con Java> = 1.7.0_02 –
Davvero? Sei sicuro? Sto usando ** 1.7.0_02-b13 ** –
Questo è divertente. Si sta compilando in Eclipse con le funzionalità di Java 7. L'ho provato tramite la riga di comando e ho ottenuto lo stesso errore del compilatore. –