首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-06-20 
如何获取一个基类的多个继承类中的最外层继承类?如class Baseclass Extend extends Baseclass SubExtend

如何获取一个基类的多个继承类中的最外层继承类?
如 
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 {} 

热点排行