我相对较新的Java,我目前正在编写一个程序,可以存储书籍(小说和教科书)。我有一本课本(Fagbok),一本小说(Skjønnbok),我有一本书(Bok),其中包括上述书籍的ArrayList。包括一种方法,该方法将检查所述书是否已经在列表中。我的问题是;有没有办法避免重写“else”中的代码,以避免重复?我可以在第一个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;
}
道歉,如果这是一个愚蠢的问题。在网上找不到任何答案。
答案 0 :(得分:0)
您可能无法在功能中创建功能。 **
在类中创建一个私有方法,并在任何地方调用它,如果它的重复代码。
**不允许在函数中使用函数,因为您可能无法使用函数B编写完整的函数A,但请记住,functional programming in Java 8启用了哪种函数。
答案 1 :(得分:0)
你总是按照他们的类型和头衔来比较书籍吗?如果是,请在equals
中实施Book
方法。否则,您可能希望使用comparator,它基本上是一个包含比较逻辑的类。您可以使用多个这样的比较器类,稍后在列表容器类中切换它们。