有没有办法在方法中创建本地方法以避免重复代码?

时间:2016-05-29 16:29:35

标签: java

我相对较新的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;
}

道歉,如果这是一个愚蠢的问题。在网上找不到任何答案。

2 个答案:

答案 0 :(得分:0)

您可能无法在功能中创建功能。 **

在类中创建一个私有方法,并在任何地方调用它,如果它的重复代码。

**不允许在函数中使用函数,因为您可能无法使用函数B编写完整的函数A,但请记住,functional programming in Java 8启用了哪种函数。

答案 1 :(得分:0)

你总是按照他们的类型和头衔来比较书籍吗?如果是,请在equals中实施Book方法。否则,您可能希望使用comparator,它基本上是一个包含比较逻辑的类。您可以使用多个这样的比较器类,稍后在列表容器类中切换它们。