10
下面的代碼編譯使用JDK6(我試過1.6.0_24)相互自引用類型參數在JDK6下編譯但不是7?
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的泛型的有意改變?
它編譯罰款
它,當你切換通用變量的例子出現對於我來說Java> = 1.7.0_02 – 2012-04-02 15:21:54
真的嗎?你確定?我正在使用** 1.7.0_02-b13 ** – 2012-04-02 15:35:59
這很有趣。它使用Java 7功能在Eclipse中進行編譯。我嘗試通過命令行,果然我得到了相同的編譯器錯誤。 – 2012-04-02 15:49:34