为什么我不能在同一个类中同时使用这两种方法?
public double foo(ArrayList<Integer> x);
public double foo(ArrayList<Double> d);
Run Code Online (Sandbox Code Playgroud)
当Java实现泛型时,为了使字节码向后兼容,他们提出了类型擦除。这意味着在运行时,通用信息消失了。所以签名实际上是:
public double foo(ArrayList x);
public double foo(ArrayList d);
Run Code Online (Sandbox Code Playgroud)
并且您有两个具有相同签名的方法。
这里的解决方案是不要重载方法名称;将这两个方法命名为不同的名称。
| 归档时间: |
|
| 查看次数: |
2980 次 |
| 最近记录: |