【发布时间】:2020-01-18 09:57:32
【问题描述】:
@Builder这两种用法有什么区别?
import lombok.*;
class BuilderAnnotationOnConstructor{
Integer fieldOne, fieldTwo;
@Builder
public BuilderAnnotationOnConstructor(int fieldOne, int fieldTwo) {
this.fieldOne = fieldOne;
this.fieldTwo = fieldTwo;
}
}
@Builder
class BuilderAnnotationOnClass{
Integer fieldOne, fieldTwo;
public BuilderAnnotationOnClass(int fieldOne, int fieldTwo) {
this.fieldOne = fieldOne;
this.fieldTwo = fieldTwo;
}
}
它们都可以正常编译和运行,但我注意到第二种情况下的奇怪行为,当注释位于类声明上时(例如,在我的一个大型项目中,属性值分配给错误/交换的变量名;不幸的是我没有能够在这个简单的例子中重现这些行为)
【问题讨论】: