Я относительно новичок в Java, и сейчас я пишу программу, которая позволит хранить книги (Художественная литература и учебники). У меня есть класс для учебников (Fagbok) и один для художественной литературы (Skjønnbok), и у меня есть класс Books (Bok), который включает ArrayList из вышеупомянутых книг. Включен метод, который будет проверять, включена ли указанная книга в список. Мой вопрос: есть ли способ избежать переписывания кода в «else», чтобы избежать дублирования? Могу ли я сделать первый, если (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 instanceof Skjønnbok)' вместо отдельных операторов if? – khelwood
вы можете вытащить этот код для частного метода. – Andrew
Если вы правильно выполняете 'equals()' в своем классе книги, вы можете просто использовать 'List.contains()' и не нужно писать код итерации списка самостоятельно , –