switch/catch


public class SwitchTest {
    public static void main(String[] args) {
        String param = null;
        switch (param) {
            case "null":
                System.out.println("null");
                break;
            default:
                System.out.println("default");
        }
    }
}

這段代碼會拋出NullPointerException,

switch處不可為null

 

switch 處可以使用Enum類,使用細節如下;

//先創建Enum類
public
enum DataTypeEnum { HOUR("hour"), DAY("day"), /** 小時類型值**     */ WEEK("week"), /** 小時類型值* */ MONTH("month"), /** 小時類型值* */ YEAR("year"), /** 小時類型值* */ MINUTE("minute"); private String value; private DataTypeEnum(String value) { this.value = value; } public static DataTypeEnum getType(String dataTypeCode) { for (DataTypeEnum enums : DataTypeEnum.values()) { if (enums.value.equals(dataTypeCode)) { return enums; } } return null; } public String getValue() { return value; } }
//在main方法中進行測試
public
static void main(String[] args) { String datatype = "week"; DataTypeEnum type = DataTypeEnum.getType(datatype);
  if(null != type){  //當switch處為null會報空指針異常,所以在此處進行判斷
switch (type){ case DAY: System.out.println("day"); break; case HOUR: System.out.println("hour"); break; case WEEK: System.out.println("week"); case YEAR: System.out.println("year"); default: System.out.println("default"); }
} }

//運行結果是
week
year
default

總結:

1. 當使用switch時,注意避免NullPointException;

2. 如果沒有break的話,會繼續執行下面的case,包括default;

3.switch、catch支持的數據類型有char,byte,short,int,String,Enum

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM