如何使用注释运行相关方法



也许这个问题标题不能满足我的查询,但我已经搜索了很长时间的答案。

在将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。

相关内容

最新更新