【发布时间】:2020-02-22 15:19:40
【问题描述】:
我有一个包含许多类的包,这些类都有一个名为onLoad 的静态方法。我想在程序启动时调用onLoad 方法,但是我不想硬连线每一个,即classA.onLoad(); classB.onLoad(); 等。
如何列出包com.foo.bar.asd 中的所有类并在所有类上运行onLoad()?
提前致谢
【问题讨论】:
-
对不起,我把标题搞砸了。它说我想创建我不想创建的这些类的实例。我想在其中调用静态方法,并且我已经编辑了标题。
-
核心反射不提供列出包中所有类的方法。但是,有一些库可以帮助解决这个问题,其中许多都展示了 here。从那里您可能会拥有
Class对象或类名。如果你最终得到一个类名,那么你可以get theClassobject using reflection。拥有Class对象后,您只需have to find and invoke the static method。