1
최근에 Java generics
과 관련하여 이상한 문제가 발생했습니다. 이 코드는 JDK 1.6.0_26
및 이후 버전에서 완벽하게 작동하는 반면 JDK 1.6.0_03
및 이전 버전의 경우Java generics의 모호성 1.6 이전 버전
public static void main(String[] args) {
String s = "Hello";
System.out.println(blindlyReturnGetObject());
}
private static <T> T getObject() {
return (T) new Object();
}
private static <T> T blindlyReturnGetObject() {
return getObject();
}
, 우리가지고 있었다 악명 컴파일 오류
type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object
: 나는 아래의 코드 조각으로 문제를 단순화.
빌드 서버가 jdk 1.6
의 이전 버전에서 계속 실행되고 있기 때문에 이전 버전 jdk 1.6
에 대해이 문제를 제거 할 수 있습니까?
Java 1.5에서이 코드는 작동하고 잘 컴파일됩니다. 이전 버전에서 컴파일 작업을 실수로하지 않았습니까? – Andremoniy
@Andremoniy 앞에서 언급했듯이 '1.6.0_0x' 인 경우에만이 컴파일 오류가 발생합니다. 나는'1.5'로 시도하지 않았다. – sundar
컴파일러의 버그 인 경우 런타임에 어떤 버전이 사용되는지 신경 쓰는 이유는 무엇입니까? – jarnbjo