重载一个方法:两种方法具有相同的擦除
我有以下代码,但它不起作用:出现错误。both methods have same erasure
public class Foo<V> {
public static void main(String[] args) {
}
public void Bar(V value) {
}
public void Bar(Object value) {
}
}
我也有这个代码:
public class Foo<V> {
public static void main(String[] args) {
}
public void Bar(B value) {
}
public void Bar(A value) {
}
}
class A {
}
class B extends A {
}
这很有效。在第一种情况下是 的子项,就像在第二种情况下是 的子项一样。那么为什么第一种情况导致错误,而第二种情况编译成功呢?V
Object
B
A
编辑:我应该如何实现方法重载,而不会引发错误?