我已经和Lombok一起使用并积极使用了2个月。使用Java,我更加熟悉了。但是,这是我第一次遇到该语言的以下语法结构:
@RequiredArgsController(onController = @__(@Autowired))
^^^
这是什么意思,如何编译?
这是一种实验性的Lombok语法,其创建目的是在引用多个注释时支持间接层,而不是使用Class<?>[]
。
语法有点奇怪;要使用这3种
onX
功能中的任何一种,您必须在中包装要应用于构造函数/方法/参数的注释@__(@AnnotationGoesHere)
。要应用多个注释,请使用@__({@Annotation1, @Annotation2})
。注释本身显然也可以具有参数。
https://projectlombok.org/features/experimental/onX.html
龙目岛开发商Roel Spilker的解释:
其原因是javac在解析阶段已经解析了注释,如果它可以确定注释无效,则给出错误。通过使用不存在的注释,
@__
它不能确定它是伪造的(它可能是由注释处理器创建的),并且不会立即给出错误。这使Lombok有时间进行工作并将其@__
从代码中删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句