1

我有以下情况:

我是一个 numberOneUser 类,框架在运行时将我作为 .class 文件从文件系统加载。

我知道在我的 .class 文件所在的目录中有更多的 .class 文件。(例如 theOtherUser.class)

其中一些实现了与我相同的接口。(称为用户)

现在我想在运行时找到实现该接口的第二个(或更多)类并用反射修改它们(例如覆盖方法)。

我对框架的唯一引用是我知道我被调用并给出了对我可以响应的对象的引用,该对象是框架的一部分。此外,我知道该框架位于我上面的目录中的 framework.jar 文件中。

没有其他信息可用。

如何找到这个其他类?

4

2 回答 2

4

看看Reflections可能对你有帮助。

Set<Class<? extends YourClassOrInterface>> subTypes = 
 reflections.getSubTypesOf(YourClassOrInterface.class);
于 2012-12-03T12:44:24.830 回答
0

查看此答案,该答案解决了如何在目录中查找 .class 文件并创建 Class 元素的集合。一旦有了类,您就可以使用反射或 instanceof 运算符来确定哪些实现了您的接口。

于 2012-12-03T14:14:42.600 回答