私の試みを働いていないのArrayListの含まれているが、私は の実装(ArrayList.containsのために等しい&ハッシュコード)メソッドをカスタマイズする
@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を使用し、ここだ、私はそれを使用する方法ですtaskCandidateList = (List<TaskCandidateListItemDo>) namedQuery.list();
for (TaskOverrideItemDo taskOverrideItemDo : validateOverrideListSearchCriteriaDo
.getTaskOverrideItemDoList()) {
if (taskCandidateList.contains(taskOverrideItemDo.getKeyValue())) {
// do some code
}
}
マイリスト
private List<TaskCandidateListItemDo> taskCandidateList;
//は、いくつかのコードを実行する以下のように宣言しましたkeyValueが存在していても、if文の内部は実行されません。また、ブレークポイントは、私はこれが問題である疑いがある.. equalsメソッドで
ありがとうAndriano、これを試してみる – sonx