【问题标题】:java list all the child classes of a parent [duplicate]java列出父类的所有子类[重复]
【发布时间】:2012-05-03 20:21:36
【问题描述】:

可能重复:
At runtime, find all classes in a Java application that extend a base class

我需要获取扩展特定类(父)的所有类(子)的列表,然后为它们创建一个实例。

我应该如何在 Java 中做到这一点?

【问题讨论】:

标签: java inheritance reflection


【解决方案1】:

我会使用http://code.google.com/p/reflections/

使用反射,您可以查询元数据,例如:

  • 获取某种类型的所有子类型
  • 获取所有带有注释的类型/方法/字段,不匹配注释参数
  • 获取匹配正则表达式的所有资源

这可以用于索引或缓存模式。正如@Jagger 所建议的那样,对每个类的蛮力搜索相对较慢。您还可以按包限制搜索,例如com.mycom.*

【讨论】:

  • 我怀疑您是否能够使用反射 API 来查找扩展给定类的所有类。不过我可能是错的。 IE。您可以轻松地使用反射 API 来获取某种类型的超类型,但不能获取一种类型的所有可能的子类型。
  • 这就是图书馆所做的。不要与The Reflection API 混淆,正如您所说,它不会这样做。 ;)
  • 我的错误。无视我之前的评论。我主要专注于阅读灰色框并假设您的意思是 java.lang.reflect。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 2020-02-09
  • 2016-04-05
相关资源
最近更新 更多