我有一个bean列表(List<AClass>
),我从中创建了两个基于某个逻辑的子列表,其中包括检查bean类中的字段,比如action。如果
bean.getAction.equals("true") - add to new sublist - List<AClass> listA
else - add to new sublist - List<AClass> listB
我为它创建了一个方法,它运行正常。
现在我对其他Bean类也有类似的任务,其中List<BClass>
也有action字段和getAction方法。我想创建一个通用的方法来满足这两个bean(以及其他类似的bean)。
我该如何创建这样的方法?
答案 0 :(得分:3)
使用List<? extends ParentClass>
,其中ParentClass
是AClass
和BClass
答案 1 :(得分:3)
如果AClass
和BClass
共享基础,则可以使用通配符类型 - List<? extends CommonBase>
答案 2 :(得分:1)
这样的事情应该有效:
interface HasAction {
public String getAction();
}
public class AClass implements HasAction {
private final String action;
public AClass (String action) {
this.action = action;
}
@Override
public String getAction() {
return action;
}
}
public class BClass implements HasAction {
private final String action;
public BClass (String action) {
this.action = action;
}
@Override
public String getAction() {
return action;
}
}
public <T extends HasAction> List<T> subList(List<T> list) {
List<T> subList = new ArrayList<T> ();
for ( T source : list ) {
if ( source.getAction().equals("true")) {
subList.add(source);
}
}
return subList;
}