实体类获取空值时的判断

      • 前言
      • 实体类
      • 测试代码
        • String 的结果
        • Long包装类测试
        • long 基本数据类型测试
        • Date测试
      • 总结

前言

由于总是分不清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 实体类中是基本数据类型,无论何种接收没有问题,

你可能感兴趣的:(java)