如何在最终课程中模拟静态最终变量

时间:2019-01-14 12:10:00

标签: reflection

请注意:不要删除此主题/帖子,因为在StackOverflow的任何页面上都没有正确的答案。我的问题完全不同。

我想模拟FINAL CLASS的私有静态final字段

我已尝试使用How to mock a static final variable using JUnit, EasyMock or PowerMock上给出的解决方案

static void setFinalStatic(Field field,Object newValue)引发IllegalAccessException,NoSuchFieldException {         field.setAccessible(true);

    // remove final modifier from field
    Field modifiersField = Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);
    modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);

    field.set(null, newValue);
}

但是它在“ field.set(null,newValue);”处给我ExceptionInInitializerError

请咨询

0 个答案:

没有答案