![](/img/trans.png)
[英]Spring ReflectionTestUtils does not set static final field
[英]How to set static final parameter from context in Spring?
我有静态最终字段的类,我想从我的上下文中初始化它们。我可以这样做吗? 或者我必须寻找另一种解决方案?
由于final
变量是在初始化期间必须完全定义一次的有效常量,因此无法使用Spring(或通常使用Java)执行此操作。 但是请看: Java 5-“最终”不再是最终的 。
这是final
,那是怎么回事?
您可以通过使用非反射Java提供普通的setter来分配给非 final
静态变量。 您可能可以使用Tomasz指出的反射来设置最终字段。
根据“matt b”的注释,您可以从变量声明中删除final,并在setter中实现“set once”功能。
例如:
private static String blammy = null;
public String getBlammy() { return blammy; }
public void setBlammy(String newValue)
{
if (StringUtils.isNotBlank(newValue)) // only set to a non blank value.
{
if (blammy == null) // set once functionality
{
blammy = newValue;
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.