lac*_*547 3 java eclipse generics overloading
如您所见,具有非void返回类型非常重要.
class TestValid {
public String f(List<String> list) {
    return null;
}
public Integer f(List<Integer> list) {
    return null;
}
public void test() {
    f(Arrays.asList("asdf"));
    f(Arrays.asList(123));
}
}
class TestInvalid {
public void f(List<String> list) {
    System.out.println("strings");
}
public void f(List<Integer> list) {
    System.out.println("numbers");
}
}
TestValid 无效开头:
Run Code Online (Sandbox Code Playgroud)TestValid.java:9: name clash: f(List<Integer>) and f(List<String>) have the same erasure public Integer f(List<Integer> list) { ^
所以返回类型是红鲱鱼.如果返回类型是考虑到在确定超载的签名,那么它会是有效的,但目前它是无效的,因为这:
// Equally invalid
public Integer f() {}
public String f() {}
如果你真的设法TestValid编译,我有兴趣知道你正在使用哪个编译器.
| 归档时间: | 
 | 
| 查看次数: | 510 次 | 
| 最近记录: |