1. 程式人生 > >實體類獲取空值時的判斷

實體類獲取空值時的判斷

前言

由於總是分不清equals==的區別,該何時用什麼判斷是否為 null

實體類

public class User{
   //正常String
    private
String biztoken; //包裝類 private Long data1; //基本資料型別 private long data2; //日期型別 private Date date; }

測試程式碼

String 的結果

 public static void main(String[] args) {
       User user = new User();
        String biz = user .getBiztoken();
        if(biz == null){
            System.out
.println("biz == null"); } if(("").equals(biz)){ System.out.println("('').equals(biz)"); } if(biz == "null"){ System.out.println("biz =='null'"); } if(("null").equals(biz)){ System.out.println("('null’).equals(biz)"
); } } System.out.println(StringUtil.isEmpty(biz));//true System.out.println(StringUtil.isBlank(biz));;//true
conditions biz == null (“”).equals(biz) biz == “null” (“null”).equals(biz)
String biz = find.getBiztoken();
String biz = find.getBiztoken().toString(); 空指標異常 空指標異常 空指標異常 空指標異常
String biz =String.valueOf(find.getBiztoken());

Long包裝類測試

public static void main(String[] args) {
       User user = new User();
       Long biz = find.getData1();
       if(biz == null){
           System.out.println("biz == null");
       }

        if(biz == 0){
            System.out.println("biz == 0");
        }

        if(("").equals(biz)){
            System.out.println("('').equals(biz)");
        }
//connot applied to "java.lang.Long","java.lang.String"
//        if(biz == "null"){
//           System.out.println("biz =='null'");
//         }

        if(("null").equals(biz)){
            System.out.println("('null’).equals(biz)");
        }
conditions biz == null (“”).equals(biz) biz == “null” (“null”).equals(biz) biz == 0
Long biz = find.getData1(); 異常 NullPointerException

long 基本資料型別測試

public static void main(String[] args) {
       User user = new User();
       long biz = find.getData2();
      //       if(biz == null){
//           System.out.println("biz == null");
//       }

        if(biz == 0){
            System.out.println("biz == 0");
        }

        if(("").equals(biz)){
            System.out.println("('').equals(biz)");
        }
//        if(biz == "null"){
//           System.out.println("biz =='null'");
//         }

        if(("null").equals(biz)){
            System.out.println("('null’).equals(biz)");
        }
        //System.out.println(StringUtil.isEmpty(biz));//異常,connot be applied to
        System.out.println(StringUtil.isBlank(biz));;//false
conditions biz == null (“”).equals(biz) biz == “null” (“null”).equals(biz) biz == 0
Long biz = find.getData1(); 異常 異常

Date測試

 public static void main(String[] args) {
       User user = new User();
       Date biz = user.getDate();
        if(biz == null){
           System.out.println("biz == null");
       }

        if(("").equals(biz)){
            System.out.println("('').equals(biz)");
        }
//        if(biz == "null"){
//           System.out.println("biz =='null'");
//         }

        if(("null").equals(biz)){
            System.out.println("('null’).equals(biz)");
        }

    }
    System.out.println(StringUtil.isEmpty(biz));//connot be applied to
        System.out.println(StringUtil.isBlank(biz));;//true
conditions biz == null (“”).equals(biz) biz == “null” (“null”).equals(biz)
String biz = find.getBiztoken(); 異常,connot apply to Date,string

總結

以下情況針對於直接用 get 空值時

1.對於包裝類的資料,直接用==null判斷
2.對於基本資料型別,沒有值時為 0
3.對於get 方法,取出來的應該是 Object 型別,
3.1 實體類中是包裝類,用Integer包裝類接收沒有問題,但如果用基本資料型別 int 接收,執行時會報空指標異常。
3.2 實體類中是基本資料型別,無論何種接收沒有問題,