类方法接受Java中不同对象的列表
是否可以在Java中执行此操作:
- 将参数传递给将接受不同类型列表的方法
- 以及在方法中使用该类类型李>
public class Test {
public boolean testing(List<ClassType> testObjs) {
int vals = 0;
if (CollectionUtils.isNotEmpty(testObjs)) {
vals += testObjs.stream()
.map(ClassType::getTestType)
.filter(isTestobj::isTest)
.count();
}
do_processing_with_vals
return boolean_value;
}
}
有3个不同的类具有方法getTestType
,但不幸的是,它们位于不同的库中,并且不共享公共父类/接口。我必须调用一个方法(例如testing
),该方法可以获取这3个类对象的列表并对其进行一些处理。我不想要3种不同的方法,它们之间的区别只是传递的对象的类(例如ClassType
)
当我用Object
代替ClassType
时,它会抛出错误,说cannot resolve method getTestType
# 1 楼答案
我认为你可以使用泛型类
https://docs.oracle.com/javase/tutorial/java/generics/types.html
# 2 楼答案
由于这些方法不共享公共接口(这是最好的解决方案),因此最干净的选择可能是传递适当的函数或谓词: