假设我有一个像下面这样的类
public class Foo
{
public static final String FIELD_1 = Env.getProperties("one");
public static final String FIELD_2 = Env.getProperties("one");
//....
public static final String FIELD_N = Env.getProperties("n");
}
显然,FIELD_*
当我们第一次引用Foo
. 假设 myEnv.getProperties(String)
不是纯粹的功能(即,它可以返回不同的值。如何?这里不重要)
如何强制Foo
“重新加载”类,以便重新执行所有类初始化代码(这样我可以为静态字段设置不同的值)?
(由于各种原因,我不能使这些字段成为非静态或非最终的。所以请不要建议像使 Foo 成为接口这样的解决方案,并覆盖各种 getter 方法)
谢谢