Lombok @Slf4j 和接口?
Lombok @Slf4j and interfaces?
我正在尝试将日志记录添加到我的界面默认方法中。例如:
@Slf4j // not allowed
interface MyIFace {
default ThickAndThin doThisAndThat() {
log.error("default doThisAndThat() called");
}
}
问题是我得到:
@Slf4j is legal only on classes and enums.
处理这个问题的正确方法是什么?
您不能在此处使用 Lombok,因为注释会生成:
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(YourClass.class);
您不能对接口使用 private 关键字。
解决方法是直接写
interface MyIFace {
org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MyIFace.class);
default ThickAndThin doThisAndThat() {
log.error("default doThisAndThat() called");
}
}
我正在尝试将日志记录添加到我的界面默认方法中。例如:
@Slf4j // not allowed
interface MyIFace {
default ThickAndThin doThisAndThat() {
log.error("default doThisAndThat() called");
}
}
问题是我得到:
@Slf4j is legal only on classes and enums.
处理这个问题的正确方法是什么?
您不能在此处使用 Lombok,因为注释会生成:
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(YourClass.class);
您不能对接口使用 private 关键字。
解决方法是直接写
interface MyIFace {
org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(MyIFace.class);
default ThickAndThin doThisAndThat() {
log.error("default doThisAndThat() called");
}
}