当前位置: 代码迷 >> J2SE >> 怎么获取一个基类的多个继承类中的最外层继承类
  详细解决方案

怎么获取一个基类的多个继承类中的最外层继承类

热度:63   发布时间:2016-04-24 00:46:52.0
如何获取一个基类的多个继承类中的最外层继承类?
如 
class Base;

class Extend extends Base;

class SubExtend extends Extend;

我现在找到Base的所有子类包括Extend, SubExtend

但我如何定位到SubExtend就是最外层的子类呢?

即我要实现这样的方法 Class findOuterExtend(List extendsClass);

------解决方案--------------------
你这个想法需要用java的反射来实现,在apache提供的common-beans组件里面提供了对JavaBean的一些处理可以借鉴下
------解决方案--------------------
for example
Java code
public class Test {    public static void main(String[] args) {        List<Class<? extends A>> list = new ArrayList<Class<? extends A>>();        list.add(A.class);        list.add(C.class);        list.add(B.class);        Class<? extends A> cls = findOuterClass(list);        System.out.println(cls);    }    public static <T> Class<? extends T> findOuterClass(List<Class<? extends T>> list) {        if (list == null || list.size() == 0)            return null;        Class<? extends T> outerClass = list.get(0);        for (int i=0; i<list.size(); ) {            try {                Class<? extends T> cls = list.get(i);                cls = outerClass.asSubclass(cls);                i++;            } catch (Exception e) {                outerClass = list.get(i);            }        }        return outerClass;    }}class A {}class B extends A {}class C extends B {}
  相关解决方案