【发布时间】:2011-06-02 02:03:06
【问题描述】:
是否有一些简单的、经过充分探索的方法可以在包中按名称搜索给定类,并递归地在 this 包的所有子包中搜索?
即给定现有的类,例如:
foo.MyClassfoo.bar.baz.some.more.MyClassfoo.bar.baz.some.more.OtherClass
我想运行magicMethod("foo.bar.baz", "MyClass") 之类的东西并得到Class foo.bar.baz.some.more.MyClass 作为结果。
显然,手动实现相当容易 - 通过探索从 Package.getPackages() 加载的包,过滤任何合适的内容并使用 Class.forName(...) 在循环中寻找类 - 但标准 Java 库或其他一些广泛使用的库中可能存在某些内容解决此任务的库,例如 Apache Commons?
【问题讨论】:
-
公共 Java API 没有为此提供任何东西。包始终是 Java 中类标识的一个组成部分。据我所知,没有一个 API 函数可以接受或返回与其分开的类名。
标签: java reflection