private Collection<Episode> episodes = new ArrayList<Episode>();
public void checkEpisodes(String string) {
for(Episode episode : this.episodes){
System.out.println(string + this.episodes.contains(episode));
}
}
上記のコードがfalseを出力するのはなぜですか?
ormliteで許可されているので、コレクションを使用しています。非常によく似たクラスにはtrueを出力する同一のメソッドがあるため、この問題はとにかくormliteが原因である可能性があると思います。
私がやろうとしているのは、によって返されるオブジェクトを変更することです。
public Episode findEpisode(int num) {
checkEpisodes("Find: ");
for(Episode episode : this.episodes) {
if(episode.getNumber()==num) {
return episode;
}
}
return null;
}
ただし、そのオブジェクトの変更は保存されません。コレクションに含まれていないので、私は推測しています。
私の解決策は機能しますが、理想的ではありません。
public void modifyEpisode(Episode episode) {
checkEpisodes("Modify: ");
for (Iterator<?> it = this.episodes.iterator(); it.hasNext();) {
if (((Episode) it.next()).getNumber()==episode.getNumber()) {
it.remove();
addEpisode(episode.getNumber(), episode.getLink(), episode.getLinkLabel());
}
}
}
私のコードをもっと見る必要がある場合は、質問してください。プロジェクトは多少複雑ですが、sourceforgeでホストされており、必要に応じてリンクを投稿できます。