我这里有两个类ClassA, ClassB的某些字段及其set get方法是一样的
但又不能用继承,但在某个方法上的处理逻辑完全一样,因此我想用泛型
处理,但试验了不行
- Java code
public void genericTest(List<ClassA> testList){//单个ClassA。ClassB逻辑完全和这个一样 for(ClassA cA : testList){ if(cA.getAge() > 60){ //...... } }}public void genericTest(List<?> testList){//不能生效的泛型应用 for(Object obj : testList){ if(obj.getAge() > 60){ //...... } }}
请问有什么好的方法能够让List<ClassA>,List<ClassB>均在一个方法中处理么?
谢谢!
------解决方案--------------------
- Java code
public static void main(String[] args) { List target = new ArrayList(); target.add(new ClassA()); target.add(new ClassB()); Test t = new Test(); t.genericTest(target); } public void genericTest(List<?> testList){ try{ for(Object obj : testList){ Method m = obj.getClass().getDeclaredMethod("getAge"); if(Integer.valueOf(m.invoke(obj).toString()) > 60){ System.out.println(obj.getClass().getName()+" gt"); } } }catch(Exception e){ e.printStackTrace(); } }