gpt4 book ai didi

java - 无法在初始化程序中引用静态枚举字段 Cbev2Key.log

转载 作者:行者123 更新时间:2023-11-30 02:24:49 27 4
gpt4 key购买 nike

我目前在我的枚举类中使用@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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com