这是一种桥梁方法吗?

Vol*_*lyy 3 java generics

为什么可以用两个具有相同签名的方法编译类?
"foo"方法只有不同的返回类型.
但是返回类型不是java中方法签名的一部分.
java编译器是否在这种情况下创建桥接方法?
如果是 - 真正的代码将如何?

foo方法有以下警告:

方法foo(GenClass)具有与类型测试中的另一种方法相同的擦除foo(GenClass)

如果取消注释bar方法,则bar方法将出现以下错误:

方法栏(GenClass)具有与类型测试中的另一种方法相同的擦除栏(GenClass)

class GenClass<T> {

}
public class test {
    public static void main(String[] args) {

    }

    public static Integer foo(GenClass<Integer> criteria) {
        System.out.println("Integer");
        return null;
    }

    public static String foo(GenClass<String> criteria) {
        System.out.println("String");
        return null;
    }

    /*public static void bar(GenClass<Integer> criteria) {
        System.out.println("Integer");
    }

    public static void bar(GenClass<String> criteria) {
        System.out.println("String");
    }*/
}
Run Code Online (Sandbox Code Playgroud)

D:\ tools\java\jdk1.6.0_37_32\bin> java -version
java version"1.6.0_38"
Java(TM)SE运行时环境(版本1.6.0_38-b05)
Java HotSpot(TM)64位服务器VM(建立20.13-b02,混合模式)

dka*_*zel 7

javac Java 6中有一个错误使得这个工作成功,但Java 7的其他Java编译器以及Java 7+中的Java编译器都会抛出编译错误.

有关详细信息,请参阅此其他帖子:

Java中方法的签名是否包含其返回类型?

http://vanillajava.blogspot.co.uk/2011/02/with-generics-return-type-is-part-of.html

编辑

@Radek在评论部分发布了另一篇优秀的Stackoverflow帖子:

方法与类型中的另一种方法具有相同的擦除

编辑2 我想我在这里找到了错误票:http: //bugs.java.com/view_bug.do?video_id = 6182950