爲什麼我不能在同一個類中同時使用這兩種方法?ArrayList數據類型的Java重載
public double foo(ArrayList<Integer> x);
public double foo(ArrayList<Double> d);
爲什麼我不能在同一個類中同時使用這兩種方法?ArrayList數據類型的Java重載
public double foo(ArrayList<Integer> x);
public double foo(ArrayList<Double> d);
當Java實現的仿製藥,使字節碼向後兼容,他們想出了類型擦除。這意味着在運行時,通用信息不見了。所以,簽名是真的:
public double foo(ArrayList x);
public double foo(ArrayList d);
,你有兩種方法具有相同的簽名。
這裏的解決方案不會超載方法名稱;給兩個方法命名不同的名字。
還有其他解決方案。 http://stackoverflow.com/a/2241584/691859但是,謝謝在類型擦除的澄清。 – 2rs2ts
你的問題是兩種方法都有相同的方法簽名。要重載方法,它們必須具有相同的名稱和返回類型,但方法簽名不同,在這種情況下,兩種方法都會接受一個數組列表。
http://stackoverflow.com/questions/2241514/overloading-java-function-with-list-parameter – PrR3