在java中使用switch块而不是多个if语句

son*_*ony 1 java string conditional switch-statement

public class A {
  public void search(boolean[] searchList) {
    // searchList array is used to identify what options to search for in a given order
   // e.g. boolean [] searchList = new boolean [] {false, false, true, false};
    boolean searchL = false;
    boolean searchM = false;
    boolean searchK = false;
    boolean searchA = false;

    if(searchList[0] == true) searchL = true;
    if(searchList[1] == true) searchM = true;
    if(searchList[2] == true) searchK = true;
    if(searchList[3] == true) searchA = true;

    if(searchL == true) // write a query to search for all Ls
    if(searchM == true) // write a query to search for all Ms
    ...........
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以简化这段代码?

@All:很抱歉之前发错了.我很困惑!

谢谢,索尼

Nat*_*ger 5

我是enums的忠实粉丝:

public class A {
  enum SearchType {
   L, M, A, K;
 }
  public void search(SearchType type) {

    switch (type) {
     case L: 
          System.out.println("Searching for L");
          break;
     case M:
          System.out.println("Searching for M");
          break;
     case A: 
          System.out.println("Searching for A");
          break;
     case K:
          System.out.println("Searching for K");
          break;
     default:
          System.out.println("what to do here?");
          // throw exception?
}
Run Code Online (Sandbox Code Playgroud)

另请注意:您的场景允许一次使用多个搜索布尔值,我认为这不是您的目标,但如果是,我们可以稍微调整一下.