也许这个问题标题不能满足我的查询,但我已经搜索了很长时间的答案。
在将Lombok添加到项目中后,我们可以使用getter、setter、Slf4j等
@Getter
@Setter
public class Example {}
我的查询是在添加@Slf4j之后,我们可以访问类"的实例;log";。像
@Slf4j
@Getter
@Setter
public class Example {
public void do() {
log.debug("doing");
}
}
那么,我如何构建这种注释;log";像java中的实现?
Lombok开发者在这里:Lombok比这复杂一点。
龙目是一种独特的工具。是的,它是一个注释处理器,因为您可以将lombok指定为一个,然后lombok作为注释处理器运行,并在init()
调用期间设置自己(一旦javac
准备好运行处理器,它将首先初始化所有处理器(。
Lombok不是一个注释处理器,因为除了init()
步骤和与"回合"系统交互之外(特别是:在某些情况下,为了确保javac
"看到"Lombok制作的东西,导致另一回合开火。通常不需要这样做,因为这需要一点额外的时间,所以除非绝对必要,否则我们不会这样做(-Lombok不使用注释API。
如果你在问如何制作自己的:那很复杂。最好的方法是在github上分叉lombok,并查看源中的两个HandleSetter.java
文件,以了解该做什么(有一个用于ecj/eclipse,一个用于javac(。然后,你就可以写自己的了。
请注意,intellij支持是通过一个单独的intellij插件完成的,所以如果你有兴趣让lombok在那里工作,你还需要派生该插件并在那里添加支持。如果您希望新的"签名"可见(您希望添加或删除字段或方法,或者您希望更改其中一个的签名部分:名称、返回类型、字段类型、参数类型或throws
行,或者您想要添加一个新类型,尽管最后一部分可以用简单的注释处理器完成(,则只需要使用intellij。