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));
}
}
Run Code Online (Sandbox Code Playgroud)
为什么以上代码打印错误?
我正在使用一个集合,因为这是ormlite允许的.我认为这个问题可能是由ormlite引起的,因为一个非常相似的类有一个相同的方法来打印true.
我要做的是修改返回的对象:
public Episode findEpisode(int num) {
checkEpisodes("Find: ");
for(Episode episode : this.episodes) {
if(episode.getNumber()==num) {
return episode;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
但是不保存对该对象的修改.我假设因为它不包含在Collection中.
我的解决方案,但有效但不理想:
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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您需要查看更多我的代码,请问,项目有点涉及,但它托管在sourceforge上,如果有必要,我可以发布一个链接.