@AllArgsConstructor @Data @NoArgsConstructor @Accessors(chain = true) @EqualsAndHashCode public class User { String name; String sex; String num; }
使用:
package com.example.springbootstarterhello.chain; public class TestChain { public static void main(String[] args) { User user = new User(); /* user.setSex("ede"); user.setNum("32323");*/ user.setName("ego").setNum("123").setSex("male"); System.out.println(user); } }
注意:
@Builder注解加到類上時程序找不到類的無參構造方法
解決辦法如下
第一種方法:Student加連個注解@NoArgsConstructor和@AllArgsConstructor
@Data @Builder @NoArgsConstructor @AllArgsConstructor public class Student { private Long id; private String name; private String teacherName; private String className; private String schoolName; }
@EqualsAndHashCode(callSuper = false)及重寫Equals和HashCode方法:
子類里面這么使用@EqualsAndHashCode(callSuper = false) ,不調用父類的屬性,那么子類屬性里面的相同的話,那hashcode的值就相同啦,所以代碼里面的2個tv的equals方法的返回值是true