Lombok也许好多人都用过@Data注解,就不用写Getter,Setter了。
----------补加一下
@Accessors(chain = true) //链式set @RequiredArgsConstructor(staticName = "of") 生成有参数的构造 和@NonNull一起
------------------------------
介绍几个:
@Data //生成Getter,Setter,equals,canEqual,hasCode,toString等方法 @AllArgsConstructor //生成全参数构造函数 @NoArgsConstructor//生成无参构造函数 @Builder(toBuilder=true) //Builder的作用之一是为了解决在某个类有很多构造函数的情况,也省去写很多构造函数 修改实体,要求实体上添加@Builder(toBuilder=true)
@Accessors(chain = true) //链式set
@Data //生成Getter,Setter,equals,canEqual,hasCode,toString等方法
@AllArgsConstructor //生成全参数构造函数
@NoArgsConstructor//生成无参构造函数
@Builder(toBuilder = true) //Builder的作用之一是为了解决在某个类有很多构造函数的情况,也省去写很多构造函数 修改实体,要求实体上添加@Builder(toBuilder=true)
@RequiredArgsConstructor(staticName = "of")
public class Student {
/**
* 告诉编译器,参数非空 和RequiredArgsConstructor配合生成静态构造方法
*/
@NonNull
private String name;
private Integer age;
private String sex;
}
测试类;
public static void main(String[] args) {
//@Builder 不用写构造函数 相当于只用两个属性的构造函数
Student student = Student.builder()
.name("张三")
.age(18)
.build();
System.out.println(student);
System.out.println("=====================================");
//修改属性
String name = "李四";
student = student.toBuilder()
.name(name)
.age(22)
.sex("男")
.build();
System.out.println(student);
System.out.println("================验证链式set @Accessors(chain = true)注解===================");
Student student2 =new Student()
.setAge(25)
.setName("张飞")
.setSex("男");
System.out.println(student2);
System.out.println("=============静态构造方法========================");
List<String> list= Lists.newArrayList();
HashMap<String, String> objectObjectHashMap = Maps.newHashMap();
Student student3=Student.of("李白")
.setAge(74)
.setSex("男");
System.out.println(student3);
}
}
结果:
代码就得骚起来!!!(还能解决idea和SonarLint的重复代码扫描)