List.contains(Object object)的改造
默认List.contains(Object object)用的是对象的equals方法判断,而equals用的是==比较对象的地址,如果对象属性值相同但地址不同的不同对象,始终返回false。
如果想只要属性值一致不管地址都认为相同,则需要改进对象的equals方法:
package com.feng.lejuan.entity; public class QuestionInfo { private String questionId; private String answerId; private String subQuestionId; private String result; public QuestionInfo() { super(); } public QuestionInfo(String questionId, String answerId, String subQuestionId, String result) { super(); this.questionId = questionId; this.answerId = answerId; this.subQuestionId = subQuestionId; this.result = result; } public String getQuestionId() { return questionId; } public void setQuestionId(String questionId) { this.questionId = questionId; } public String getAnswerId() { return answerId; } public void setAnswerId(String answerId) { this.answerId = answerId; } public String getSubQuestionId() { return subQuestionId; } public void setSubQuestionId(String subQuestionId) { this.subQuestionId = subQuestionId; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } @Override public boolean equals(Object o) { if (o instanceof QuestionInfo) { QuestionInfo question = (QuestionInfo) o; return this.questionId.equals(question.questionId) && this.subQuestionId.equals(question.subQuestionId) && this.answerId.equals(question.answerId) && this.result.equals(question.result); } return super.equals(o); } @Override public String toString() { return "QuestionInfo [questionId=" + questionId + ", answerId=" + answerId + ", subQuestionId=" + subQuestionId + ", result=" + result + "]"; } }

浙公网安备 33010602011771号