【发布时间】:2015-01-29 13:01:02
【问题描述】:
在我的 java 程序中,我有一个带有静态块的类。我知道静态块只被初始化一次,并且只被 JVM 加载一次。但是,如果我希望该静态块被执行(或加载)一次以上怎么办。我尝试使用 class.forName() 在另一个类中动态加载该类,并尝试使用 classLoader。但是静态块只执行一次。所以建议我做最简单的方法。
我了解到通过使用 classLoader 我们可以加载同一个类的多个版本。但如何?我可以在我的程序中实现这个概念吗?
【问题讨论】:
-
您是否尝试过编写自己的类加载器?
class.forName()检查类是否已经加载.. 所以它不会帮助你 -
如果您将编写自己的 ClassLoader,那么可以。否则系统类加载器正在检查类是否已加载,如果是,则不加载类,仅返回您的类类型的类对象。
-
你的实际用例是什么?
-
建立你的类加载器实现。
-
感谢大家的宝贵建议。是的,你们是对的。这只能通过编写自己的类加载器来完成。
标签: java