Các mã sau biên dịch sử dụng JDK6 (Tôi đã thử 1.6.0_24)Tham số kiểu tự tham chiếu lẫn nhau trong JDK6 chứ không phải 7?
class XY<A extends XY<A, B>, B extends XY<B, A>> { }
Nhưng biên soạn theo JDK7 (ví dụ 1.7.0), tôi nhận được lỗi này:
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 bất cứ ai có điểm là liệu đây có phải là một sự thay đổi có chủ ý đối với Generics của Java không?
Nó biên dịch tốt cho tôi với Java> = 1.7.0_02 –
Thật sao? Bạn có chắc không? Tôi đang sử dụng ** 1.7.0_02-b13 ** –
Điều này thật thú vị. Nó được biên dịch trong Eclipse với các tính năng Java 7. Tôi đã thử nó thông qua dòng lệnh và chắc chắn đủ tôi nhận được lỗi trình biên dịch tương tự. –