我有以下测试类,使用泛型来重载方法。使用javac编译时可以运行,但在Eclipse Helios中无法编译通过。我的java版本是1.6.0_21。
我读到的所有文章都表明Eclipse是正确的,这段代码不应该工作。然而,使用javac编译和运行时,选择了正确的方法。
这怎么可能?
谢谢!
我读到的所有文章都表明Eclipse是正确的,这段代码不应该工作。然而,使用javac编译和运行时,选择了正确的方法。
这怎么可能?
谢谢!
import java.util.ArrayList;
public class Test {
public static void main (String [] args) {
Test t = new Test();
ArrayList<String> ss = new ArrayList<String>();
ss.add("hello");
ss.add("world");
ArrayList<Integer> is = new ArrayList<Integer>();
is.add(1);
is.add(2);
System.out.println(t.getFirst(ss));
System.out.println(t.getFirst(is));
}
public String getFirst (ArrayList<String> ss) {
return ss.get(0);
}
public Integer getFirst (ArrayList<Integer> ss) {
return ss.get(0);
}
}
public <A> A getFirst (ArrayList<A> ss) { return ss.get(0); }
... 如果这只是为了举例而编造的,那就继续。 - Tom Crockett