Lombok
@Getter @Setter
@Setter(AccessLevel.PROTECTED)
@NonNull
@ToString(callSuper=true,exclude="someExcludedField")
@EqualsAndHashCode(callSuper=true,exclude=zip)
@AllArgsConstructor @NoArgsConstructor
使用技巧
1、@RequiredArgsConstructor
使用 @RequiredArgsConstructor
注解,会对 final
或 @NonNUll
修饰的成员变量生成构造方法,
如果有非 final
或 @NonNUll
修饰的成员变量,则不会为其生成构造方法。
用法,可以代替 @AutoWired
注解。需要注意的是,成员变量需要使用 final
或 @NonNUll
修饰。
@Controller
@RequiredArgsConstructor
public class Demo1{
private final Demo2 demo2;
@NonNull
private Demo3 demo3;
@AutoWired
private Demo4 demo4;
public void test(){
// demo2, demo3, demo4 都会被注入
demo2.test();
demo3.test();
demo4.test();
}
}
@Accessors
注解
@Accessors
注解可以自定义 getter/setter 方法的生成策略。
有三个属性
- fluent:如果设置为 true,则生成的 getter/setter 方法的方法名不会包含 get/set 前缀,且返回值为 this,而不是 void。
- chain:如果设置为 true,则生成的 setter 方法返回值为 this,而不是 void。
- prefix:指定字段的前缀,在生成 getter/setter 方法时会忽略该前缀。