我目前正在我的枚举类中使用@ 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;
}
在日志变量中,它向我显示此错误
“无法在初始化程序中引用静态枚举字段Cbev2Key.log。”
为什么我收到此错误?
答案 0 :(得分:1)
Lombok的@Log4j2
注释生成一个静态log
字段:
https://projectlombok.org/api/lombok/extern/log4j/Log4j2.html
但是在静态字段之前初始化枚举元素。
因此,Enum的构造函数无法像记录器那样访问未初始化的静态。