有人可以解释为什么第二类不编译?
1使用javac和JDK 6编译好(Eclipse会抱怨此代码)
public class SameSignatureMethods {
public <T extends String> Boolean test()
{
return true;
}
public <T extends Character> Double test()
{
return 1d;
}
}
Run Code Online (Sandbox Code Playgroud)
2对该示例稍作更改,编译失败,并出现以下错误:
name clash: <T>test() and <T>test() have the same erasure
Run Code Online (Sandbox Code Playgroud)
唯一的变化是方法的返回类型:
public class SameSignatureMethods {
public <T extends String> Boolean test()
{
return true;
}
public <T extends Character> Boolean test() {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是第一类的主要方法看起来如何:
public static void main(String[] args) {
SameSignatureMethods m = new SameSignatureMethods();
System.out.println("m.<Character>test()=" + m.<Character>test());
System.out.println("m.<String>test()=" …Run Code Online (Sandbox Code Playgroud)