내 시도를 작동하지 ArrayList.contains에 대한 해시 코드(), 내가 구현이 동일 및 ArrayList를의 포함 방법을 사용자 정의 할 수
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result;
if (keyValue == null) {
result += 0;
} else {
result += keyValue.hashCode();
}
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
TaskOverrideItemDo other = (TaskOverrideItemDo) obj;
if (keyValue == null) {
if (other.keyValue != null) {
return false;
}
} else if (!keyValue.equals(other.keyValue)) {
return false;
}
return true;
}
TaskCandidateListItemDo
클래스 내부에 이러한 방법을 생성하기 위해 Eclipse를 사용 그리고 여기 내가 그것을 사용하는 방법입니다 // 몇 가지 코드를 할private List<TaskCandidateListItemDo> taskCandidateList;
을 다음과 같이
taskCandidateList = (List<TaskCandidateListItemDo>) namedQuery.list();
for (TaskOverrideItemDo taskOverrideItemDo : validateOverrideListSearchCriteriaDo
.getTaskOverrideItemDoList()) {
if (taskCandidateList.contains(taskOverrideItemDo.getKeyValue())) {
// do some code
}
}
내 목록 선언 keyValue가 존재하더라도 if 문 안쪽에서 실행되지 않습니다. 다시 얻을 실제 객체가 아니라 일부의 수 있으며,이 최대 절전 모드에서입니다 가정
if (getClass() != obj.getClass()) {
return false;
}
: 또한, 브레이크 포인트는 나는이 문제를 의심 .. equals 메소드에
감사합니다 Andriano, 이것을 시도합니다. – sonx