读书人

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

发布时间: 2012-06-20 20:37:21 作者: rapoo

如何获取一个基类的多个继承类中的最外层继承类?

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 {} 

读书人网 >J2SE开发

热点推荐