实现来学到的(一)
2018-05-30 本文已影响13人
最深的爱最沉默_a447
一.
1.在工作中,他们常用来判断传过来的参数是否为空啊等等常用的方法是StringUtils.isBlank(),而且很重要的一点是在一个Controller层的方法中,比如要传参数,但是其实前端不传也是可以进来的.不传就好像默认为null(String类的),基本类型好像也是null(好像说对了),可以测试测试.反正就是前端都可以进来.
下面是判断是否为空的方法:


好像还有个isnotBlank的方法和他刚好是反的,一个判断是否为空啊,一个判断是否不为空.可以看看.
二.这是个大坑,一个bug就出现在这了.
String.valueof的坑
大家都知道String.valueof这个方法是用来将int,long等转换成String类型的,这工作中是这么用的,前端传来参数,你要判断他是否为空,用第一个说道的方法,但是他只能判断String类型,所以要将int,long啊转换成String类型进行判断.但问题就出在这了,万一前端没传参数,他就是null,但这个null经过String.valueof转换过后,出现了什么神奇的变化,他变成了一个字符串.....,对"null"的一个字符串.........

我靠,有点错,有可能是我用的是包装类,包装类默认为null,自己碰到了在试试

上面说的很对,但我突然想到为啥非要转换类型用String.isBlank去判断,他是int,long类型了,直接==去判断是不是null就行了么......
还有看看toString方法和上面那个的区别,即toString不能传入null,否则会报错.

