一、
在添加unit test的时候,遇到了一个NPE(NullPoint Excepotion)的异常。
在exception的track发现,是由于private final logger私有域未赋值的情况,以下是解决方案。
通过使用反射机制进行赋值,采用MIT的Mockito的第三方工具进行初始化[有关Mockito的更多用法,稍后讲解]。代码如下
private void setFinalStatic(Field field, Object newValue) throws Exception {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, newValue);
}
二、
当类中的Field不是private static final而是