是否可以重载参数为不同类型的List<>
的方法?
例如,我正在寻找创建两个这样定义的方法:
public void getChanges(List<TypeOne>){}
public void getChanges(List<TypeTwo>){}
但是,由于两种方法都接受List
,所以存在冲突。有什么方法可以使方法在列表中的内部中考虑对象类型?
我觉得奇怪的是,编译器没有意识到签名确实是不同的,因为List<TypeOne>
与List<TypeTwo>
不同。
答案 0 :(得分:4)
您必须给它们使用不同的名称,因为上述方法具有相同的删除。
有关具体泛型类型的信息不会存储在运行时中,因此,如果您将签名保持在上面,那么如果将任何对象列表作为参数传递,JVM将无法实现在运行时应调用哪种方法。
有关删除的更多信息,请参阅https://docs.oracle.com/javase/tutorial/java/generics/erasure.html