【发布时间】:2017-08-17 07:33:33
【问题描述】:
我在一个类中有以下方法:
void delete(ClassA a) {
//....
}
void delete(ClassB b) {
//...
}
void delete(List<ClassA> list) {
for (ClassA a: list) {
delete(a);
}
}
void delete(List<ClassB> list) {
for (ClassB b: list){
delete(b);
}
}
前两种方法的重载工作正常。但是第三种方法和第四种方法有冲突。
是否可以用一种方法替换它们?我尝试了以下方法,不正确:
void delete(List<? extends Object> list){
for (Object o: list){
delete((o.getClass())o);
}
}
如何在运行时检测列表中实例的类类型并调用相应的方法?
【问题讨论】:
-
使用
instanceof检查对象
标签: java generics overloading