Equals 在實現 equals 這個方法之前, 應該先想的是怎樣才算是相等? 先看個例子 http://openhome.cc/Gossip/JavaEssence/ObjectEquality.html String s1 = new String("Java"); String s2 = new String("Java"); System.out.println(s1 == s2); // 顯示 false System.out.println(s1.equals(s2)); // 顯示 true 使用 Apache commons 可以協助更快的定義 entity 的差異, 比如說 Item(商品), 用商品的 uId 來定義是否相等。 文章建議, 在定義 equals() 的同時, 最好也定義 hashCode() , 這是兩件不同的事情, hashCode() 就像物件的身分證, 會更嚴格的處理物件身份的問題, 在 Collection 類的操作會常用到。 隨便的例子 package entitys; import lombok.AllArgsConstructor; import lombok.Data; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; /** * Created by jerry on 2017/9/22. */ @Data @AllArgsConstructor public class Apple { private String name; private String type; private String price; @Override public boolean equals(Object obj) { if (!(obj instanceof Apple)) { return false; } if(obj == this) { ...