当前位置:编程学习 > JAVA >>

高分求解,关于spring ioc 一个接口多个实现类的问题

问题描述很简单,我如何可以在程序里面获取某个接口的全部实现类呢??
例如 我有一个 interface 取名叫 Ilogic
然后我有两个 实现类  取名叫 logicA 和 logicB
我如何可以在程序运行时 获得 Ilogic 的全部实现类列表呢?? 我打算用spring ioc 去实现 请问是否可以呢??如果不可以 请你是用什么方法去实现我这个需求的呢?? --------------------编程问答-------------------- 这和IOC应该没多大关系,假如你要获取这个接口所有的实现类的话,用反射或许会比较好。。。。 --------------------编程问答--------------------

public static List<Class> getAllClassByInterface(Class c) {
List<Class>  returnClassList = null;

if(c.isInterface()) {
// 获取当前的包名
String packageName = c.getPackage().getName();
try {
// 获取当前包下以及子包下所以的类
List<Class> allClass = getClasses(packageName);
if(allClass != null) {
returnClassList = new ArrayList<Class>();
for(Class classes : allClass) {
// 判断是否是同一个接口
if(c.isAssignableFrom(classes)) {
// 本身不加入进去
if(!c.equals(classes)) {
returnClassList.add(classes);
}
}
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

return returnClassList;
}
--------------------编程问答-------------------- Java中如何获得所有实现该接口的子类 --------------------编程问答-------------------- 这个只需要使用java反射机制即可实现,参考一下这篇文章http://kinkding.iteye.com/blog/416206 --------------------编程问答-------------------- 谢谢大家的回答哦! 我去看看你们的资料 做一下实验马上散分 --------------------编程问答-------------------- 2L版主贴的代码是极好的,楼主研究研究. --------------------编程问答-------------------- --------------------编程问答-------------------- 二楼版主的代码确实很好,简单且实用 --------------------编程问答-------------------- 关于二楼的getClasses方法,楼主可以去看一下
http://blog.csdn.net/wangpeijiang/article/details/5458858
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,