我有这样的事情:
public static final String path; static { path = loadProperties("config.conf").getProperty("path"); } public static void main(String... args) { // ... do stuff (starting threads that reads the final path variable) // someone want's to update the path (in the config.conf file) restart(); // ??? }
我想重新初始化再次调用静态初始化程序的JVM,然后main(...)!
main(...)
能做到吗
您可以使用自定义类加载器启动应用程序,这将允许您加载和卸载静态变量。
但是,基本上,这样做是非常糟糕的设计。我喜欢将字段定为最终字段,但如果要更改它们,则不应将其定为最终字段。