我對Java比較陌生,目前我正在編寫一個允許存儲書籍(小說和教科書)的程序。我有一個教科書(Fagbok)和一個小說(Skjønnbok)課程,我有一個班級Books(Bok),其中包括上述書籍的ArrayList。包括一種方法,它將檢查所述書是否已經在列表中。我的問題是;有沒有辦法避免重寫「其他」中的代碼,以避免重複?我可以做第一個if(sjekkBok ......)方法稍後用於同一個方法嗎?有沒有辦法在方法中創建本地方法以避免重複代碼?
public Boolean eksisterer(Bok sjekkBok){
boolean funnet = false;
for(Bok bok : bøker){
if(sjekkBok instanceof Fagbok){
if(sjekkBok.getTittel().equals(bok.getTittel())){
funnet = true;
break;
}
}
else{
if(sjekkBok instanceof Skjønnbok){
if(sjekkBok.getTittel().equals(bok.getTittel())){
funnet = true;
break;
}
}
}
}
return funnet;
}
道歉,如果它是一個愚蠢的問題。在網上找不到任何答案。
爲什麼不只是'if(sjekkBok instanceof Fagbok || sjekkBok instance ofSkjønnbok)'而不是單獨的if語句? – khelwood
您可以將此代碼提取到私有方法 – Andrew
如果您在book類中正確實現了equals(),那麼您可以使用List.contains()而不需要自己編寫列表迭代代碼。 –