最近我遇到了一个奇怪的问题Java generics
。我用下面的代码片段简化了问题:
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();
}
在JDK 1.6.0_03
早期版本的情况下,我们遇到了臭名昭著的编译错误
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.0_26
及更高版本中完美运行。
jdk 1.6
由于我们的构建服务器仍在早期版本中运行,是否有办法解决早期版本的这个问题jdk 1.6
?