Zep*_*hyr 0 java overloading type-erasure
是否可以重载参数为List<>不同类型的方法?
例如,我希望创建两个这样定义的方法:
public void getChanges(List<TypeOne>){}
public void getChanges(List<TypeTwo>){}
Run Code Online (Sandbox Code Playgroud)
但是,由于两种方法都接受 a List,因此存在冲突。有什么方法可以使方法考虑列表中的对象类型吗?
对我来说,编译器没有意识到签名确实不同,因为 aList<TypeOne>与 不同,这似乎很奇怪List<TypeTwo>。
你必须给它们不同的名字,因为上面的方法有相同的擦除。
有关具体泛型类型的信息不会存储在运行时中,因此,如果您保留上述签名,那么如果您传递任何对象列表作为参数,JVM 将无法意识到在运行时应该调用什么方法。
有关擦除的更多信息,请参阅https://docs.oracle.com/javase/tutorial/java/generics/erasure.html
| 归档时间: |
|
| 查看次数: |
1546 次 |
| 最近记录: |