java中判空

Java基础 专栏收录该内容
91 篇文章 0 订阅

类型判空

1、int 在初始化的时候=0,使用0==a判断

        int a = 0;
        if (0 == a) {
            System.out.println(true);
        }

2、Integer 初始化为null。

 Integer a1 = null;
        if(a1==null){
            System.out.println(true);
        }

如果确定为 null,直接使用a1==null判断。
遇到无法确定前端是否传入参数的时候(在mybatis无法拦截),在收参数的时候改为String判断。
3、String判空

        String a2 = "";
        if (a2 == null || a2 == "") {
            System.out.println("a2为空");
        }

为了防止空指针首先要判断a2是否为null,再进行""判断。
String判空有很多方式,有String类提供的

    String a2 = "";  //a2已经实例化
    String a3 = null;
    if (a2 == null || a2 == "") {
        System.out.println("a2为空");
    }
    if (a2.isEmpty() || a3.isEmpty()) {
        System.out.println("a2,a3 isEmpty");
    }
    if (a2.length() == 0 || a3.length() == 0) {
        System.out.println("a2,a3的长度为null");
    }
     if(a2.equals("")){
        System.out.println("a2实例化使用equals不会报错");
    }
    // if(a3.equals(null))//这种就会报错 空指针
    if(StringUtil.isEmpty(a2)|| StringUtil.isEmpty(a3)){
        System.out.println("a2,a3的StringUtil.isEmpty为true");
    }

可以看到StringUtils的isEmpty的方法是

    /**
     * 空
     *
     * @param str
     * @return
     */
    public static boolean isEmpty(String str) {
        return str == null || str.length() == 0;
    }
    /**
     * 非空
     *
     * @param str
     * @return
     */
    public static boolean isNotEmpty(String str) {
        return !isEmpty(str);
    }

引入import org.apache.commons.lang3.StringUtils;
这种判断增加一个" “,String是” "

        String a4 = " ";
        if (StringUtils.isBlank(a4)) {
            System.out.println("a4为空白字符");
        }

4、对象判空

        //对象判空
        RegionVO regionVO = null;

        if (regionVO == null) {
            System.out.println("RegionVO对象为空");
        }
        
        RegionVO regionVO1 = new RegionVO();
        regionVO1.setItemId(1);
        if (regionVO1 != null) {
            System.out.println("RegionVO对象不为空");
        }

但是这种情况下,
在这里插入图片描述
如果要判断对象里面的属性是否全部为null,除了一个个判断外,可以利用反射。

    public static boolean checkObjAllFieldsIsNull(RegionVO regionVO) {
        if (null == regionVO) {
            return true;
        }
        try {
            for (Field f : regionVO.getClass().getDeclaredFields()) { //通过反射得到所有列
                f.setAccessible(true);//fields.setAccessible(true);的实际作用就是使权限可以访问public,protected,private的字段
                if (f.get(regionVO) != null && StringUtils.isNotBlank(f.get(regionVO).toString())) {
                    return false;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return true;
    }

5、集合判空
list

        List list = null;
        if (null == list || list.size() == 0) {
            System.out.println("list为null");
        }
        List list1 = new ArrayList();
        if(list1.size()==0){
            System.out.println("list的size为0");
        }
                if (null == list || list.isEmpty()) {
            System.out.println("list is empty");
        }

引入import org.apache.commons.collections.CollectionUtils;

        if (CollectionUtils.isEmpty(list)) {
            System.out.println("list为空");
        }

CollectionUtils.isEmpty()方法也是使用==null 和isEmpty

    public static boolean isEmpty(Collection coll) {
        return coll == null || coll.isEmpty();
    }

    public static boolean isNotEmpty(Collection coll) {
        return !isEmpty(coll);
    }

map

        Map map=new HashMap();
        Map map1=new HashMap();
        map.put(1,"first");
        if (map.isEmpty()) {
            System.out.println("map为空");
        }else {
            System.out.println("map不为空");
        }
        if (map1.isEmpty()) {
            System.out.println("map1为空");
        }else {
            System.out.println("map1不为空");
        }

在这里插入图片描述

  • 5
    点赞
  • 5
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值