嵌套ifs在Java中使用Boolean的替代方法

Raj*_*pal -2 java collections if-statement switch-statement java-8

我有下面的代码块

if(Objects.nonNull(isMine)) {
    if (isMine) {
             this.books= // gets it from the database;
    } else  {
            this. books= // gets it from the database
    }

 } else {
     this. books = // gets it from the database
 }
Run Code Online (Sandbox Code Playgroud)

isMine - 是一个布尔对象,我尝试使用switch case,将isMine转换为字符串,如下所示

 String.valueOf(isMine) 
Run Code Online (Sandbox Code Playgroud)

但是没有用.建议在java中实现上述代码的更好,更快的方法.

Flo*_*own 6

如果出现以下情况,您可以使用else来展平if-else语句:

if(isMine == null) {
  books = allList;
} else if(isMine) {
  books = myList;
} else {
  books = notMyList;
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是将检查分为以下方法:

  public List<Book> getBookList(Boolean isMine) {
    return isMine == null ? allList : getBookList(isMine.booleanValue());
  }

  public List<Book> getBookList(boolean isMine) {
    return isMine ? myList : notMyList;
  }
Run Code Online (Sandbox Code Playgroud)