java反射获取某接口的所有实现类
来源:互联网 发布:剑网3捏脸数据详细 编辑:程序博客网 时间:2024/05/18 02:12
@SuppressWarnings("unchecked") private List<Class<ScmJob>> getAllSubclassOfTestInterface() { Field field = null; Vector v = null; List<Class<TestInterface>> allSubclass = new ArrayList<Class<TestInterface>>(); Class<TestInterface> scmJobClass = ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Class<?> classOfClassLoader = classLoader.getClass(); try { testInterfaceClass = (Class<TestInterface>) Class.forName("com.xxx.xxx.xxx.TestInterface"); } catch (ClassNotFoundException e) { throw new RuntimeException( "无法获取到TestInterface的Class对象!查看包名,路径是否正确"); } while (classOfClassLoader != ClassLoader.class) { classOfClassLoader = classOfClassLoader.getSuperclass(); } try { field = classOfClassLoader.getDeclaredField("classes"); } catch (NoSuchFieldException e) { throw new RuntimeException( "无法获取到当前线程的类加载器的classes域!"); } field.setAccessible(true); try { v = (Vector) field.get(classLoader); } catch (IllegalAccessException e) { throw new RuntimeException( "无法从类加载器中获取到类属性!"); } for (int i = 0; i < v.size(); ++i) { Class<?> c = (Class<?>) v.get(i); if (scmJobClass.isAssignableFrom(c) && !scmJobClass.equals(c) && !abstractScmJobClass .equals(c)) { allSubclass.add((Class<ScmJob>) c); } } return allSubclass; }
获取到当前线程下的所有子类的类对象后,就可以neInstance,或者在bean中按照相应的命名规则查找到实例了。
0 0
- java反射获取某接口的所有实现类
- 通过反射机制获取位于同一个包下的接口的所有实现类
- 通过反射机制获取位于同一个包下的接口的所有实现类
- Java 获取接口所有实现类
- java反射(1)获取类的所有
- 通过反射获取系统中所有继承了某接口的类
- Java根据包名获取指定接口的所有实现
- JAVA-获取实现了指定接口类的所有实现类或继承了指定类的所有子类
- Java反射获取一个类的所有get方法
- java 反射获取类中所有的属性(含父类)
- Java反射类工具获取成员的所有方法代码
- 获取实现某个接口的所有实现类集合
- Java动态获取某个接口下所有的实现类对象集合
- JAVA获取所有接口的实现类或父类的所有子类(同路径下)
- JAVA获取所有接口的实现类或父类的所有子类(同路径下)
- java 反射获取所有类文件
- Spring 获取 实现某接口的所有实例bean
- 通过反射获取类的所有属性
- 关于Unity读取XML的简单学习
- iOS 开发者必不可少的 75 个工具
- Java线程第二弹--资源冲突问题
- Android 快速开发系列 打造万能的ListView GridView 适配器
- public, protect, private定义变量的区别
- java反射获取某接口的所有实现类
- xcode插件入门教程
- 寻找下一个较大元素 --- 利用栈
- 基础之菜单项的使用
- 第一周项目
- C提高——数组、数组数据类型、数组数据类型指针、多维数组本质等
- tomcat启动后访问应用超时问题
- zhu的工作日记:LayoutAnimation的简单使用(android)
- Java 编程思想第四版 笔记