高分求解,关于spring ioc 一个接口多个实现类的问题
问题描述很简单,我如何可以在程序里面获取某个接口的全部实现类呢??例如 我有一个 inte易做图ce 取名叫 Ilogic
然后我有两个 实现类 取名叫 logicA 和 logicB
我如何可以在程序运行时 获得 Ilogic 的全部实现类列表呢?? 我打算用spring ioc 去实现 请问是否可以呢??如果不可以 请你是用什么方法去实现我这个需求的呢?? --------------------编程问答-------------------- 这和IOC应该没多大关系,假如你要获取这个接口所有的实现类的话,用反射或许会比较好。。。。 --------------------编程问答--------------------
--------------------编程问答-------------------- Java中如何获得所有实现该接口的子类 --------------------编程问答-------------------- 这个只需要使用java反射机制即可实现,参考一下这篇文章http://kinkding.iteye.com/blog/416206 --------------------编程问答-------------------- 谢谢大家的回答哦! 我去看看你们的资料 做一下实验马上散分 --------------------编程问答-------------------- 2L版主贴的代码是极好的,楼主研究研究. --------------------编程问答-------------------- --------------------编程问答-------------------- 二楼版主的代码确实很好,简单且实用 --------------------编程问答-------------------- 关于二楼的getClasses方法,楼主可以去看一下
public static List<Class> getAllClassByInte易做图ce(Class c) {
List<Class> returnClassList = null;
if(c.isInte易做图ce()) {
// 获取当前的包名
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;
}
http://blog.csdn.net/wangpeijiang/article/details/5458858
补充:Java , Java EE