我目前在我的枚举类中使用@Log4j2,如下所示:
import lombok.extern.log4j.Log4j2;
@Log4j2
public enum Cbev2Key
{
....
....
}
我在代码中使用这个“log”变量将这样的日志放入构造函数中:
CbeV2Key(final String value, final IonType type,final boolean isMandatoryKey)
{
if(StringUtils.isEmpty(value) || type == null) {
log.fatal("Empty/Null value/type not permitted value : " + value + " type : " + type);
}
this.type = type;
this.isMandatoryKey = isMandatoryKey;
}
在日志变量中它向我显示了这个错误
"Cannot refer to the static enum field Cbev2Key.log within an initializer."
为什么我会收到此错误?
最佳答案
Lombok的@Log4j2
注释生成静态log
字段:
https://projectlombok.org/api/lombok/extern/log4j/Log4j2.html
但是枚举元素是在静态字段之前初始化的。
因此,Enum 的构造函数无法像记录器一样访问未初始化的静态数据。
关于java - 无法在初始化程序中引用静态枚举字段 Cbev2Key.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45916085/