可能重复:
At runtime, find all classes in a Java application that extend a base class
我需要获取扩展特定类(父类)的所有类(子)的列表,然后创建它们的所有实例。
我应该如何用Java做到这一点?
答案 0 :(得分:5)
我会使用http://code.google.com/p/reflections/
使用思考可以查询元数据,例如:
- 获取某种类型的所有子类型
- 获取所有带注释的类型/方法/字段,没有匹配的注释参数
- 获取与正则表达式匹配的所有资源
这可以在索引或缓存模式下使用。正如@Jagger所暗示的那样,对每个班级进行蛮力搜索的速度相对较慢。您还可以按包限制搜索,例如com.mycom.*