1

最近我遇到了一个奇怪的问题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

4

1 回答 1

1

在谷歌搜索与此问题相关时,我遇到了sun与此问题相关的错误generics type inference

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6302954

所以这被发现在以后的版本中得到修复,jdk 1.6.0_20因此它正在工作jdk 1.6.0_26

认为它值得分享。

于 2013-02-08T09:16:04.703 回答