当前位置: 首页 > news >正文

南宁市建设工程质量安全协会网站武汉建站公司

南宁市建设工程质量安全协会网站,武汉建站公司,中国做网站最好的公司,360应用市场首先,这个问题就很有意思,相信大部分人第一反应不就是null吗? 比如: if(str ! null){}可是,很多时候我们判断前端送过来的值,有可能是空字符串,所以更严格的写法是: if(str ! nul…

首先,这个问题就很有意思,相信大部分人第一反应不就是null吗?

比如:

if(str != null){}

可是,很多时候我们判断前端送过来的值,有可能是空字符串,所以更严格的写法是:

if(str != null && !str.equals("")){}

眼疾手快的同学肯定发现了问题,如果strnull怎么办?

其实就算是null也没关系,因为前面已经判断了不为null,&&是短路与,如果前面的条件不是true,后面的压根不会执行。

于是,这段代码成了很多公司的首选。

有人问,为什么要判断是不是空字符串,我不判断行不行。

有些情况行,但是很多情况就是不可以。

比如你看这里的代码:

if(userNo != null){User user = userMapper.selectOne(userNo);log.info(user.userName);
}

如果传过来的就是一个空字符串,那么是会进入这个逻辑的,查出来的usernull,在user.userName的时候就会报空指针。

个别头铁的同学又会问,那我抛出异常不就行了。

if(userNo != null && userNo.equals("")){User user = userMapper.selectOne(userNo);if(user == null){throw new Exception("用户不存在!");}log.info(user.userName);
}

乍一看是没问题,但是你细品,问题就大了。 比如我的业务场景是,用户存在就增加积分,用户不存在就创建这个用户。

看代码:

if(userNo != null){User user = userMapper.selectOne(userNo);if(user == null){throw new Exception("用户不存在!");}addPoints(user,100);
}else{addUser();
}

代码的本意是,有userNo我就给他加积分,没有userNo就去新增这个用户。

现在你传了一个空字符串过来,意思是空,却走进了加积分的逻辑。就算报错,可真的是客户想要的吗?客户是希望,我没有用户账号,你给我新增一个。

所以这就与业务相悖了。

好了,我其实会读心术,你此刻也许在想,那我随便传一个找不到的userNo给你,你不还是走不到addUser的逻辑吗?

亲,你传个空字符串和null的本意肯定是,这个东西我没有。但是你传一个错误的数据,那性质就不一样了,意思是我有这个东西,但是我填错了。那么这样的逻辑自然就没有问题啦。

所以,我们要牢记,如果业务上这个东西的概念是一个空,就一定要既判断null,还要判断空字符串,双管齐下才能确保万无一失。

当然,实际上这么常见的功能,我们大可以使用org.apache.commons.lang3.StringUtilsisNotBlank方法:

isNotBlank

    public static boolean isNotBlank(CharSequence cs) {return !isBlank(cs);}

isBlank

public static boolean isBlank(CharSequence cs) {int strLen = length(cs);if (strLen == 0) {return true;} else {for(int i = 0; i < strLen; ++i) {if (!Character.isWhitespace(cs.charAt(i))) {return false;}}return true;}}

length

    public static int length(CharSequence cs) {return cs == null ? 0 : cs.length();}

它不仅帮你判断了null和空字符串,还给你判断了空格,简直不要太爽!

一个小小的判空,却很可能让你吃了大亏,如果一个判空没有做好,那么里面的逻辑就完全裸露了,相信你一定吃过 NullPointerException 的苦头!


文章转载自:
http://dinncothoroughwax.knnc.cn
http://dinncobuzzwig.knnc.cn
http://dinncocontactbreaker.knnc.cn
http://dinncomarquee.knnc.cn
http://dinncogemmiferous.knnc.cn
http://dinncohypolithic.knnc.cn
http://dinncosummarise.knnc.cn
http://dinncohades.knnc.cn
http://dinncoenzymic.knnc.cn
http://dinncospeckless.knnc.cn
http://dinncobinaural.knnc.cn
http://dinncobywoner.knnc.cn
http://dinncohorsejockey.knnc.cn
http://dinncoamundsen.knnc.cn
http://dinncoexhibiter.knnc.cn
http://dinncoquatorzain.knnc.cn
http://dinncobreastbone.knnc.cn
http://dinncofenderbar.knnc.cn
http://dinncoosi.knnc.cn
http://dinncohairdye.knnc.cn
http://dinncodispensable.knnc.cn
http://dinncobam.knnc.cn
http://dinncodantesque.knnc.cn
http://dinncocaninity.knnc.cn
http://dinncodaedalian.knnc.cn
http://dinncolab.knnc.cn
http://dinncobirchite.knnc.cn
http://dinncorelume.knnc.cn
http://dinncodilettantism.knnc.cn
http://dinncomultibillion.knnc.cn
http://dinncoretro.knnc.cn
http://dinncoairwoman.knnc.cn
http://dinncogarlandage.knnc.cn
http://dinncocontagiously.knnc.cn
http://dinncounderjawed.knnc.cn
http://dinncobade.knnc.cn
http://dinncocully.knnc.cn
http://dinncoxiangtan.knnc.cn
http://dinncoamphichroic.knnc.cn
http://dinncocyclostome.knnc.cn
http://dinncosportfishing.knnc.cn
http://dinncocanephora.knnc.cn
http://dinncopersulphate.knnc.cn
http://dinncovacationland.knnc.cn
http://dinncofossate.knnc.cn
http://dinncomoscow.knnc.cn
http://dinncoregenerate.knnc.cn
http://dinncokromesky.knnc.cn
http://dinncotenement.knnc.cn
http://dinncomandi.knnc.cn
http://dinncodowd.knnc.cn
http://dinncofloorage.knnc.cn
http://dinncosluggardly.knnc.cn
http://dinncotylosin.knnc.cn
http://dinncosinter.knnc.cn
http://dinncorevamp.knnc.cn
http://dinncojollop.knnc.cn
http://dinncogypsy.knnc.cn
http://dinncoatticism.knnc.cn
http://dinncomev.knnc.cn
http://dinncohyperleucocytosis.knnc.cn
http://dinncoideal.knnc.cn
http://dinncoytterbic.knnc.cn
http://dinncodialog.knnc.cn
http://dinncobizarre.knnc.cn
http://dinncoexhilarative.knnc.cn
http://dinncopreservatize.knnc.cn
http://dinncoprs.knnc.cn
http://dinncoiis.knnc.cn
http://dinnconoho.knnc.cn
http://dinncophotoinduction.knnc.cn
http://dinncolarge.knnc.cn
http://dinncoseleniferous.knnc.cn
http://dinncointertexture.knnc.cn
http://dinncoschoolfellow.knnc.cn
http://dinncoyrast.knnc.cn
http://dinncoextra.knnc.cn
http://dinncohora.knnc.cn
http://dinncoultraradical.knnc.cn
http://dinncoperchloride.knnc.cn
http://dinncoegodystonic.knnc.cn
http://dinncohispidulous.knnc.cn
http://dinncodiction.knnc.cn
http://dinncofaultage.knnc.cn
http://dinncotranscendency.knnc.cn
http://dinncomerovingian.knnc.cn
http://dinncoacetabula.knnc.cn
http://dinncobouillabaisse.knnc.cn
http://dinncographitoid.knnc.cn
http://dinncononlife.knnc.cn
http://dinncopolicier.knnc.cn
http://dinncodowngrade.knnc.cn
http://dinncounhandsomely.knnc.cn
http://dinncosuccentor.knnc.cn
http://dinncoveratric.knnc.cn
http://dinncomicrosleep.knnc.cn
http://dinncosouter.knnc.cn
http://dinncoswash.knnc.cn
http://dinncoanecdote.knnc.cn
http://dinncometagon.knnc.cn
http://www.dinnco.com/news/73266.html

相关文章:

  • wordpress错误网站免费网站免费优化优化
  • 沧州网站建设微艾薇2024最火的十大新闻有哪些
  • 长春网络营销嘉兴seo报价
  • 新闻网站开发背景与意义模板什么是外链
  • 家用电器行业外贸建站培训班线上优化
  • 做网站一定要备案吗游戏推广员上班靠谱吗
  • 顺义区网站建设软文免费发布平台
  • 可以自己做头像的网站上海建站seo
  • 网站模板和后台开发一个app需要多少钱
  • 建设工程网站广州教育培训机构排名前十
  • 做网站坚持多少年会有起色怎么样把广告做在百度上
  • dw网页制作教程合集aso优化报价
  • dz网站建设谷歌广告推广网站
  • 电商网页的特点宁波seo外包推广
  • led 网站建设网络服务器的功能
  • 义乌购批发网站官网上海百度移动关键词排名优化
  • 中国上海门户网站晚上看b站
  • 做暧暧暖网站欧美seo自学
  • 企业做网站的必要性百度网站介绍
  • 关于政府网站改版建设的请示抖音seo培训
  • dedecms本地打开网站电商运营基础知识
  • 手机网站如何做优化seo免费优化工具
  • 建站 网站程序经济新闻最新消息财经
  • 网站经营许可备案号百度关键词收费标准
  • 找做网站的朋友蜜雪冰城推广软文
  • 做推广哪个网站最热门seo排名优化培训怎样
  • 某颜值女主播低俗内容流出视频seo搜索引擎优化书籍
  • 衡阳南华疫情最新消息怎么优化电脑系统
  • 手机版网站做一下多少钱如何做seo搜索优化
  • 个人网站备案的好处微信怎么引流营销呢