精华内容
下载资源
问答
  • 判空

    2019-07-06 16:14:52
    小菜知道的有两种,org.apache.commons.lang3包下的StringUtils类和org.springframework.util包下的StringUtils类,org.apache.commons.lang3包下的StringUtils类常用的判空有两种:isEmpty和isBlank。下面分别介绍...

    StringUtils

      StringUtils工具类是用来做字符串的操作的,有两种,org.apache.commons.lang3包下的StringUtils类和org.springframework.util包下的StringUtils类,org.apache.commons.lang3包下的StringUtils类常用的判空有两种:isEmpty和isBlank。下面分别介绍一下。


    1.org.apache.commons.lang3和org.springframework.util包中的StringUtils类的区别:
      org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是string类型
      org.springframework.util包下的参数是object类,也就是不仅能判断string类型,还能判断其他类型,如long等类型(此包下的更实用)


    2.isEmpty和isBlank的区别:
      这两个方法都是判断字符是否为空的,前者要求没有任何字符,后者要求是空白字符,isBank判断的空字符其实包括了isEmpty,也就是说isEmpty判断的范围比isBank小。而两者最大的区别就在于——isBank能判空格符而isEmpty不能。

    3.例子:

    String str1=null;
    String str2="";
    String str3="  ";
    String str4="aa";
    
    //isEmpty
    System.out.println(StringUtils.isEmpty(str1));//——————true
    System.out.println(StringUtils.isEmpty(str2));//——————true
    System.out.println(StringUtils.isEmpty(str3));//——————false
    System.out.println(StringUtils.isEmpty(str4));//——————false
    
    //isBank
    System.out.println(StringUtils.isBlank(str1));//——————true
    System.out.println(StringUtils.isBlank(str2));//——————true
    System.out.println(StringUtils.isBlank(str3));//——————true
    System.out.println(StringUtils.isBlank(str4));//——————false 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    CollectionUtils

      CollectionUtils是org.apache.commons.collections包中的工具类,提供了很多对集合的操作方法。

    //(1)判空
    CollectionUtils.isNotEmpty(resultApply)
    
    //(2)并集
    CollectionUtils.union(listA,listB);
    
    //(3)交集
    CollectionUtils.intersection(listA,listB);
    
    //(4)补集
    CollectionUtils.disjunction(listA,listB);
    
    //(5)差集
    CollectionUtils.subtract(listA,listB);
    
    //(6)是否相等
    CollectionUtils.isEqualCollection(listA,listB);
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    实践中的情况

      在之前和前端对接接口时出现了这种情况,我的接口文档写的是:界面选择一个分类就传分类id,如果不选就不传或者传空,但前端却给我传的是两个单引号。接口对分类id判空我使用的是isEmpty,他传来的单引号用isEmpty做校验不管用,识别的是字符串,后来我用了isBank也不行,忘了具体哪的问题,后来我是这样暂时解决的问题

    if ("''".equals(categoryId) || StringUtil.isEmpty(labelIds) ) {
        categoryId=null;
    }
    
    • 1
    • 2
    • 3
    • 4
    展开全文
  • 每次查了数据都要判空 每次查了数据都要判空 每次查了数据都要判空 每次查了数据都要判空 每次查了数据都要判空 每次查了数据都要判空 !!!!!不要给自己挖坑 ...

    每次查了数据都要判空
    每次查了数据都要判空
    每次查了数据都要判空
    每次查了数据都要判空
    每次查了数据都要判空
    每次查了数据都要判空

    !!!!!不要给自己挖坑

    展开全文
  • freemarker判空对象 <#if user?? > 有用户 </#if> freemarker判空List <#if myList?? && (myList?size > 0) > 有戏 <#else> 没戏 </#if>

    freemarker判空对象

     <#if user?? >
        有用户
     </#if>

     freemarker判空对象的属性

    <#if (user.name)??>
        有名字
    </#if>

     freemarker判空List 

     <#if myList?? && (myList?size > 0) >
        有戏
     <#else>
        没戏
     </#if>

     

     

    展开全文
  • 一、导语在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。传统阶层判空为什么要用Optional,它到底是什么东西你也看到了上面的那张图,一旦代码量大...

    一、导语

    在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。

    a16980c35130abab46be83d59513242b.png

    传统阶层判空

    为什么要用Optional,它到底是什么东西

    你也看到了上面的那张图,一旦代码量大起来了,条件多了,代码就会变得很冗余,变得难以维护。那么此时我们就有必要了解Optional了。

    Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。Optional 类的引入很好的解决空指针异常。

    二、Optional使用

    Optional 的方法,如下图

    23a7a1cf2adc56673149e5f27a40ca3f.png

    Optional方法-图1

    0a4fd2ede2f78c6d8de13161720b1e8f.png

    Optional方法-图2

    方法就是这么多,其他的也不必多说,相信各位小伙伴一看就懂;如何使用,还是用代码演示,请往下移步。

    三、Optional实例

    1.of

    为非null的值创建一个Optional。of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null。如果传入参数为null,则抛出NullPointerException 。

    Optional optional = Optional.of("xiaoming");

    //传入null,抛出NullPointerException

    Optional o = Optional.of(null);

    2.ofNullable

    为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。

    Optional o1 = Optional.ofNullable(null);

    3.isPresent

    值存在返回true,否则返回false

    Optional optiona2 = Optional.of("xiaoming");

    System.out.println(optiona2.isPresent());

    4.get

    Optional有值就返回,没有抛出NoSuchElementException

    Optional o1 = Optional.ofNullable(null);

    System.out.println(o1.get());

    5.ifPresent

    如果Optional有值则调用consumer处理,否则不处理

    Optional o1 = Optional.ofNullable(null);

    o1.ifPresent(s -> System.out.println(s));

    6.orElse

    如果有值则将其返回,否则返回指定的其它值

    Optional o1 = Optional.ofNullable(null);

    System.out.println(o1.orElse("输出orElse")); // 输出orElse

    7.orElseGet

    orElseGet与orElse方法类似,区别在于得到的默认值。orElse方法将传入的字符串作为默认值,orElseGet方法可以接受Supplier接口的实现用来生成默认值

    Optional o1 = Optional.ofNullable(null);

    System.out.println(o1.orElseGet(() -> "default value")); // default value

    *注意:orElse 和 orElseGet 看似差不多,其实有很大不同;看下面例子

    Shop shop = null;

    System.out.println("test orElse");

    Optional.ofNullable(shop).orElse(createNew());System.out.println("test orElseGet");

    Optional.ofNullable(shop).orElseGet(()->createNew());

    //createNew

    private static Shop createNew() { System.out.println("create new");

    return new Shop("尺子", 50);

    }//输出:

    test orElsecreate newtest orElseGetcreate new

    Shop shop = new Shop("钢笔",100);

    System.out.println("test orElse");

    Optional.ofNullable(shop).orElse(createNew());System.out.println("test orElseGet");

    Optional.ofNullable(shop).orElseGet(()->createNew());

    //输出

    test orElsecreate newtest orElseGet

    从上面两个例子可以看到,当Optional 为空时,orElse和orElseGet 区别不大,但当Optional有值时,orElse仍然会去调用方法创建对象,而orElseGet不会再调用方法;在我们处理的业务数据量大的时候,这两者的性能就有很大的差异。

    8.orElseThrow

    如果有值则将其返回,否则抛出supplier接口创建的异常。

    Optional o1 = Optional.ofNullable(null);

    try {

    o1.orElseThrow(() -> new Exception("异常!"));

    } catch (Exception e) {

    System.out.println("info:" + e.getMessage());

    }//输出:info:异常!

    9.map

    如果有值,则对其执行调用mapping函数得到返回值。如果返回值不为null,则创建包含mapping返回值的Optional作为map方法返回值,否则返回空Optional。

    Optional optional = Optional.of("xiaoming");

    String s = optional.map(e -> e.toUpperCase()).orElse("shiyilingfeng");

    System.out.println(s); //输出: XIAOMING

    10.flatMap

    如果有值,为其执行mapping函数返回Optional类型返回值,否则返回空Optional。与map不同的是,flatMap 的返回值必须是Optional,而map的返回值可以是任意的类型T

    Optional optional = Optional.of("xiaoming");

    Optional s = optional.flatMap(e -> Optional.of(e.toUpperCase()));

    System.out.println(s.get()); //输出:XIAOMING

    11.filter

    List strings = Arrays.asList("rmb", "doller", "ou");

    for (String s : strings) {

    Optional o = Optional.of(s).filter(s1 -> !s1.contains("o"));

    System.out.println(o.orElse("没有不包含o的"));

    }//输出:

    rmb

    没有不包含o的

    没有不包含o的

    四、小结

    Optional 是java非常有用的一个补充,它旨在减少代码中的NullPointerExceptions,虽然不能百分之百的消除,但也是精心设计的。使用Optional 能更好的帮助我们创建可读性强,bug更少的应用程序。

    参考:

    展开全文
  • 对象判空:http://www.ibloger.net/article/3209.html 字符串判空:https://blog.csdn.net/qq_34926773/article/details/85235110
  • 问题:由于字符串内容为空的时候,会出输入空格通过的情况,因此在vue通过数组长度的方式进行判空; 逻辑:先把msg以空格拆分成数组,然后拼接起来,判断字符串的长度,如果长度为0,就是没有输入内容,如下: ...
  • 1、js判空: if ( $('#dictType').val()==null && $('#dictType').val()==''){} 2、List集合判空: List<ForkliftAttach> list = truckAttachMapper.queryAttachByForkliftId(id); if(list !=...
  • java 判空_java中判空

    2021-02-12 09:37:30
    一、概述java中判等似乎很简单,==用来...那么在null判等(也就是判空操作)时呢?可以通过如下代码明白两个判等的比较:String name = null;if(null==name){System.out.println("null==name");//通过}if(name==null)...
  • 在没有用 Optional 判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。 传统阶层判空 为什么要用 Optional,它到底是什么东西 你也看到了上面的那张图,一旦代码量大...
  • obj=null 判断对象为空,若初始化了实例,则对象是有值的,判空无效。 obj.count>0 判断对象大小大于0,若对象为空,出错 2. string.IsNullOrEmpty(str); str.equal(""); str == null; str == string.emp...
  • MySQL IFNULL判空问题解决方案,函数,上下文,字符串值,语句,代码MySQL IFNULL判空问题解决方案易采站长站,站长之家为您整理了MySQL IFNULL判空问题解决方案的相关内容。问题:mybatis返回的null类型数据消失,导致...
  • 导语在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。传统阶层判空为什么要用Optional,它到底是什么东西你也看到了上面的那张图,一旦代码量大起来了...
  • 对象判空 Watermark watermark = new Watermark(); <#if watermark != null && watermark != ‘’></#if> 队列判空 List ArticleArea = articleAreaService.getName(); <#if ArticleArea?? &...
  • bean 判空 的工具类判空

    千次阅读 2018-12-03 11:18:00
    判断对象是否存在ObjectUtils.isEmpty(ids)对象之间的属性拷贝BeanUtils.copyProperties();...String 常用的一些判空的工具 StringUtils.isBlank集合判空 CollectionUtils.isEmpty(speciList) 转载于:https://ww...
  • 在没有用Optional判空之前,你是否也像下面的代码一样判空呢?如果是,请往下看,Optional 相对传统判空的优势。 为什么要用Optional,它到底是什么东西 你也看到了上面的那张图,一旦代码量大起来了,条件多了,...
  • 在平常开发中经常会遇到需要判空的场景public ResponseDto get(Param param) { if (param == null) { // do something } }这样判断固然没有错,也可以实现正确的需求,但是有以下两点问题。1.不优雅在代码中存在...
  • 常见字符串判空和数组判空

    千次阅读 2018-04-23 10:03:28
    字符串,判断不为空和不为“”,在此之前最好把对象也进行判空处理,防止空指针异常if (null != username &amp;&amp; !"".equals(username) &amp;&amp;...)数组判空,判断不为空,且长度...
  • 前言整天都是在跟Java打交道。我在Java开发中最常用的一段代码就是用object !...判空灾难作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException...
  • 1 List判空虽然 Collection的List本身具有.isEmpty()方法判空,但是,使用CollectionUtils.isEmpty(list),可避免第一种方法在集合为null的情况下出现的空指针问题。2 数组转ListArrays.asList();Collections....
  • 做项目时,有这样的一个功能:文本框不能为空,效果如下: 过程如下:1 、给...2、在js中添加checkFrom()函数://判空function checkForm(){//校验文章标题//获得文章标题文本框的值:var title=document.getElemen...
  • 前言整天都是在跟java打交道。我在Java开发中最常用的一段代码就是用object !...判空灾难作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException...
  • js 判空

    2019-04-09 17:33:00
    判空 export const isNull = (args) ...
  • 前言对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。...作者在日常工作中,封装了一个工具,可以可以链式调用对象成员而无需判空,相比原有的if null逻辑 和 JDK8提供的 Op...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,197
精华内容 3,278
关键字:

判空