Lombok中的语法@@()是什么意思?

安德鲁·托比尔科(Andrew Tobilko):

我已经和Lombok一起使用并积极使用了2个月。使用Java,我更加熟悉了。但是,我第一次遇到了该语言的以下语法结构:

@RequiredArgsController(onController = @__(@Autowired))
                                       ^^^

这是什么意思,如何编译?

OrangeDog:

这是一种实验性的Lombok语法,其创建目的是在引用多个注释时支持间接层,而不是使用Class<?>[]

语法有点奇怪;要使用这3种onX功能中的任何一种,您必须在中包装要应用于构造函数/方法/参数的注释@__(@AnnotationGoesHere)要应用多个注释,请使用@__({@Annotation1, @Annotation2})注释本身显然也可以具有参数。

https://projectlombok.org/features/experimental/onX.html

龙目岛开发商Roel Spilker的解释

原因是javac在解析阶段已经解析了注释,如果可以确定注释无效,则会给出错误。通过使用不存在的注释,@__它不能确定它是伪造的(它可能是由注释处理器创建的),并且不会立即给出错误。这使Lombok有时间完成其工作并将其@__从代码中删除

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章