我在一些单元测试中遇到了一个奇怪的行为反射最终静态场.以下是说明我的问题的示例.
我有一个基本的Singleton类,它包含一个Integer
public class BasicHolder {
private static BasicHolder instance = new BasicHolder();
public static BasicHolder getInstance() {
return instance;
}
private BasicHolder() {
}
private final static Integer VALUE = new Integer(0);
public Integer getVALUE() {
return VALUE;
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试用例是循环并设置Reflection the VALUE到迭代索引,然后声明VALUE正确地等于迭代索引.
class TestStaticLimits {
private static final Integer NB_ITERATION = 10_000;
@Test
void testStaticLimit() {
for (Integer i = 0; i < NB_ITERATION; i++) {
setStaticFieldValue(BasicHolder.class, "VALUE", i);
Assertions.assertEquals(i, BasicHolder.getInstance().getVALUE(), "REFLECTION DID NOT WORK for iteration "+i); …Run Code Online (Sandbox Code Playgroud)