java泛型1.6早期版本和更高版本中的歧义

java泛型1.6早期版本和更高版本中的歧义,java,generics,jdk1.6,Java,Generics,Jdk1.6,最近我遇到了一个关于Java泛型的奇怪问题。我使用下面的代码片段简化了问题: public static void main(String[] args) { String s = "Hello"; System.out.println(blindlyReturnGetObject()); } private static <T> T getObject() { return (T) new Object();

最近我遇到了一个关于
Java泛型的奇怪问题。我使用下面的代码片段简化了问题:

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.026及更高版本中工作得非常好


由于我们的构建服务器仍在早期版本的
jdk1.6
中运行,所以早期版本的
jdk1.6
是否有任何方法可以解决此问题?

在谷歌搜索与此问题相关的内容时,我在
sun
中遇到了一个与此
泛型推断问题相关的bug

因此,在较新版本的
jdk1.6.0_20
中,这一问题得到了解决,因此它在
jdk1.6.0_26


认为它值得分享。

在谷歌搜索与此问题相关的内容时,我遇到了在
sun
中提出的与此
泛型类型推断
问题相关的bug

因此,在较新版本的
jdk1.6.0_20
中,这一问题得到了解决,因此它在
jdk1.6.0_26


认为它值得分享。

在Java 1.5下,这段代码工作正常,编译良好。您确定在早期版本下编译时没有出现任何错误吗?@Andremoniy,如我所述,只有在
1.6.0\u 0x
时才会出现此编译错误。我没有尝试使用
1.5
如果它是编译器中的一个bug,为什么你会关心运行时使用哪个版本?@jarnbjo现在编辑了我的问题。我的意思是制造机器,而不是生产服务器。很抱歉造成混淆。在Java1.5下,这段代码可以正常工作并编译良好。您确定在早期版本下编译时没有出现任何错误吗?@Andremoniy,如我所述,只有在
1.6.0\u 0x
时才会出现此编译错误。我没有尝试使用
1.5
如果它是编译器中的一个bug,为什么你会关心运行时使用哪个版本?@jarnbjo现在编辑了我的问题。我的意思是制造机器,而不是生产服务器。抱歉搞混了。
type parameters of <T>T cannot be determined; no unique maximal instance exists for type variable T with upper bounds T,java.lang.Object