-
2018-08-30 20:21:39
//filterParams({a:"",b:null,c:"010",d:123}) //Object {c: "010", d: 123} //var abc = { //a: 1, //b: 2, //c: '', //d: '' //} //filterParams(abc) //{a: 1, b: 2} //这个方法不会影响原来的对象,而是返回一个新对象 function filterParams(obj){ let _newPar = {}; for (let key in obj) { //如果对象属性的值不为空,就保存该属性(这里我做了限制,如果属性的值为0,保存该属性。如果属性的值全部是空格,属于为空。) if ((obj[key] === 0 || obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') { //记录属性 _newPar[key] = obj[key]; } } //返回对象 return _newPar; }
更多相关内容 -
Java判断对象是否为空(包括null ,"")的方法
2020-08-26 01:59:23主要介绍了Java判断对象是否为空(包括null ,"")的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
java判断对象为空(对象为空和对象的值为空的区别)
2021-11-28 19:02:08文章目录前言一、object==null判断对象为空二、判读对象的值为空1.利用反射编写判空工具类2.测试总结 前言 小伙伴们大家好,最近一段时间家里有点事,没空写博客,现在事忙完啦。今天趁周末写一篇文章,希望对大家...
前言
小伙伴们大家好,最近一段时间家里有点事,没空写博客,现在事忙完啦。今天趁周末写一篇文章,希望对大家有所帮助。java编写接口时总是会遇到传多个参数的情况,此时我们一般会习惯用对象封装。那么前端就需要给我们传递一个对象,而对象传过来后我们的必要操作就是首先判空,避免后续操作产生空指针或者其他错误。
一、object==null判断对象为空
这里我也是写了一个测试接口,首先使用object==null判断,话不多说上代码
controller层代码
import com.trs.dto.Boo; import com.trs.service.FirstService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** * Demo class * * @author crazy-water * @date 11/27/2021 18:21 */ @RequestMapping("first") @RestController @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class firstWeekendController { private final FirstService firstService; @PostMapping("isNull") public void isNull(@RequestBody(required = false) Boo boo) { firstService.isNull(boo); } }
service层代码
import com.sun.xml.internal.ws.util.StringUtils; import com.trs.dto.Boo; import com.trs.service.FirstService; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; /** * Demo class * * @author crazy-water * @date 11/27/2021 18:28 */ @Service public class FirstServiceImpl implements FirstService { @Override public void isNull(Boo boo) { System.out.println(boo); String a = boo==null ? "boo是空" : "boo非空"; System.out.println("==null判断结果是-----"+a); } }
这种情况比较简单,就不多做介绍,直接上结果(此处采用的测试工具是postman)
第一种情况不传对象,结果如下,显然接口收不到对象,那么对象肯定是空不存在任何引用。
第二种 传空对象,这种情况是我们最需要注意的,往往出问题的就是这一种,我们今天着重讲的也是这一种。结果如下图,明明传递的是空对象,但是结果确是对象非空,曾经这个问题也曾困扰过我。后来仔细思考后发现这个对象只是值为空,但是 这个对象确是存在的,其以及被创建出来啦。举个例子,有一个空桶,虽然桶是空的,但是桶确是存在的。由此可见,object==null只能判断有没有桶,却不能判断桶是否为空的情况,由此引入判断桶空的方法,见步骤二。
二、判读对象的值为空
1.利用反射编写判空工具类
在这里就把工具类贴出来了,有需要的小伙伴可以直接打包带走。
import java.lang.reflect.Field; import java.lang.reflect.Type; /** * <p>Description: 判断对象是否为空,进一步判断对象中的属性是否都为空 </p> * @author crazy-water * @date 2018年11月12日 */ public class JudgeObjIsNullUtil { /** * 判断对象是否为空,且对象的所有属性都为空 * ps: boolean类型会有默认值false 判断结果不会为null 会影响判断结果 * 序列化的默认值也会影响判断结果 * @param object * @return */ public static boolean judgeObjIsNull(Object object){ Class clazz = object.getClass(); // 得到类对象 Field fields[] = clazz.getDeclaredFields(); // 利用反射得到所有属性 boolean flag = true; //定义标志flag /** * 循环遍历反射得到的属性数组,判断每个属性值是否为空 */ for(Field f : fields){ f.setAccessible(true);//由于考虑到某些私有属性直接访问肯能访问不到,此属性设置为true确保可以访问到 Object fieldValue = null; try { fieldValue = f.get(object); //得到属性值 Type fieldType =f.getGenericType();//得到属性类型 String fieldName = f.getName(); // 得到属性名 System.out.println("属性类型:"+fieldType+",属性名:"+fieldName+",属性值:"+fieldValue); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } if(fieldValue != null){ //只要有一个属性值不为null 就返回false 表示对象不为null flag = false; break; } } return flag; } }
2.测试
使用上述的发射工具类,看看是否可以判断空对象,结果如下图,可见可以正常判断,并且打印出各个属性的具体情况。
import com.trs.dto.Boo; import com.trs.service.FirstService; import com.trs.util.JudgeObjIsNullUtil; import org.springframework.stereotype.Service; /** * Demo class * * @author crazy-water * @date 11/27/2021 18:28 */ @Service public class FirstServiceImpl implements FirstService { @Override public void isNull(Boo boo) { // System.out.println(boo); // // String a = boo==null ? "boo是空" : "boo非空"; // // System.out.println("==null判断结果是-----"+a); boolean b = JudgeObjIsNullUtil.judgeObjIsNull(boo); System.out.println(b==true ?"boo为空" :"boo不为空"); } }
data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv') print(data.head())
该处使用的url网络请求的数据。
总结
学会了对象判空的方法,可以减少程序后面可能会出的Bug,加油吧,小伙伴们,快快动起来,代码搞起来!
-
Java中判断对象是否为空的方法的详解
2021-02-12 10:58:02首先来看一下工具StringUtils的判断方法:一种是org.apache....这两种StringUtils工具类判断对象是否为空是有差距的:StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判...首先来看一下工具StringUtils的判断方法:
一种是org.apache.commons.lang3包下的;
另一种是org.springframework.util包下的。这两种StringUtils工具类判断对象是否为空是有差距的:
StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判断是否为空的方法参数是字符序列类,也就是String类型
StringUtils.isEmpty(Object str); //而org.springframework.util包下的参数是Object类,也就是不仅仅能判断String类型,还能判断其他类型,比如Long等类型。
从上面的例子可以看出第二种的StringUtils类更实用。
下面来看一下org.apache.commons.lang3的StringUtils.isEmpty(CharSequence cs)源码:
public static boolean isEmpty(final CharSequence cs) {
return cs == null || cs.length() == 0;
}
接下来是org.springframework.util的StringUtils.isEmpty(Object str)源码:
public static boolean isEmpty(Object str) {
return (str == null || "".equals(str));
}
基本上判断对象是否为空,StringUtils.isEmpty(Object str)这个方法都能搞定。
接下来就是判断数组是否为空
list.isEmpty(); //返回boolean类型。
判断集合是否为空
例1: 判断集合是否为空:
CollectionUtils.isEmpty(null): true
CollectionUtils.isEmpty(new ArrayList()): true
CollectionUtils.isEmpty({a,b}): false
例2:判断集合是否不为空:
CollectionUtils.isNotEmpty(null): false
CollectionUtils.isNotEmpty(new ArrayList()): false
CollectionUtils.isNotEmpty({a,b}): true
2个集合间的操作:
集合a: {1,2,3,3,4,5}
集合b: {3,4,4,5,6,7}
CollectionUtils.union(a, b)(并集): {1,2,3,3,4,4,5,6,7}
CollectionUtils.intersection(a, b)(交集): {3,4,5}
CollectionUtils.disjunction(a, b)(交集的补集): {1,2,3,4,6,7}
CollectionUtils.disjunction(b, a)(交集的补集): {1,2,3,4,6,7}
CollectionUtils.subtract(a, b)(A与B的差): {1,2,3}
CollectionUtils.subtract(b, a)(B与A的差): {4,6,7}
以上所述是小编给大家介绍的Java中判断对象是否为空的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
-
js判断对象是否为空
2022-03-02 10:51:10js判断对象是否为空 JSON.stringify()。将 JavaScript 值转换为 JSON 字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b); //true 为空, false 不为空` es6的...文章目录
一、js判断对象是否为空(三种方法)
- JSON.stringify()。将 JavaScript 值转换为 JSON 字符串,再判断该字符串是否为"{}"
var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b); //true 为空, false 不为空`
- es6的方法Object.keys()
var data = {}; var arr = Object.keys(data); alert(arr.length == 0); //true 为空, false 不为空
- for in 循环判断
var obj = {}; var b = function() { for(var key in obj) { return false; } return true; } alert(b());//true 为空
二、注:
1. JSON.stringify()
语法
JSON.stringify(value[, replacer[, space]])
参数说明:
- value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。
- replacer:
可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。
- space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
2. Object.keys()
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
语法
Object.keys(obj)
参数
obj
要返回其枚举自身属性的对象。
返回值
一个表示给定对象的所有可枚举属性的字符串数组。
例子
// simple array var arr = ['a', 'b', 'c']; console.log(Object.keys(arr)); // console: ['0', '1', '2'] // array like object var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.keys(obj)); // console: ['0', '1', '2'] // array like object with random key ordering var anObj = { 100: 'a', 2: 'b', 7: 'c' }; console.log(Object.keys(anObj)); // console: ['2', '7', '100'] // getFoo is a property which isn't enumerable var myObj = Object.create({}, { getFoo: { value: function () { return this.foo; } } }); myObj.foo = 1; console.log(Object.keys(myObj)); // console: ['foo']
3. for…in 语句
以任意顺序遍历一个对象的除symbol以外的可枚举属性
4. Object.keys(obj) 和 for…in 区别
object.keys(obj)只包括对象本身的属性
for…in遍历包括对象继承自原型对象的属性
Object.prototype.test = 'test'; var obj= { a:1, b:2, } //Object.keys不会输出原型链中的数据; console.log(Object.keys(obj)) // [“a”, “b”] for(var key in obj){ console.log(key) } // a // b // test //for in 会把原型链中test 输出
obj.hasOwnProperty()可以判断是实例的属性还是原型链的属性
-
java 判断对象是否为空
2021-02-12 12:32:54下面是一个通用的方法,判断字符串是否为空,集合是否为空,数组是否为空:/*** 判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty** @param obj* @return*/public static ... -
如何判断java对象是否为空
2021-02-28 13:16:10首先来看一下工具StringUtils的判断方法:一种是org.apache....这两种StringUtils工具类判断对象是否为空是有差距的:StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判... -
js 判断对象是否为空
2022-02-15 14:07:42js 判断对象是否为空的四种方法 -
Java判断对象是否为空
2021-07-27 20:25:36Java方法isEmpty汇总问题描述参考资料 问题描述 。 参考资料 java判断一个字符串是否为空,isEmpty和isBlank的区别 Java判断对象是否为空的方法:isEmpty,null," " Java中判断数组是否为空? -
java 判断一个对象是否为空对象
2020-03-30 22:29:29最近项目中遇到一个问题,在用户没填数据的时候,我们需要接收从前端传过来的对象为null,但是前端说他们一个一个判断特别麻烦,只能传个空对象过来,我第一个想法就是可以通过反射来判断对象是否为空。 第一版: ... -
js判断一个对象是否为空,循环对象操作
2020-02-04 11:47:36Object.keys()方法会返回一个由一个给定对象...判断一个对象是否为空,可是通过Object.keys()这个方法通过判断它的长度来进行判断 if (Object.keys(object).length === 0){ return '空的' } 循环一个数组操作,... -
微信小程序如何判断对象是否为空、判断值是否存在
2022-05-09 17:26:20微信小程序如何判断定义的对象是否为空、如何判断对象中的未定义的值是否存在 -
java对象如何判断是否为空
2021-03-06 15:47:58下面我们来看一下java中判断对象是否为空的方法:(推荐:java视频教程)首先来看一下工具StringUtils的判断方法:一种是org.apache.commons.lang3包下的;另一种是org.springframework.util包下的。这两种StringUtils... -
JS判断对象是否为空的方法大全
2022-04-09 16:38:38JS判断对象是否为空的几种方法 -
JS 判断对象的所有属性值是否为空
2022-05-11 11:19:33JS 判断对象所有的属性值是否为空 -
JAVA判断对象以及属性值是否为空
2020-12-18 11:45:27JAVA判断对象以及属性值是否为空 import java.lang.reflect.Field; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; /** * @author Tate * @date 2020-12-18 11:10 * @title ... -
Vue中可用的判断对象是否为空的方法
2020-12-24 12:53:35Object.keys(xxx).length==0 js判断对象是否为空对象的几种方法 1.将json对象转化为json字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b);//true 2... -
JavaScript判断对象是否为空对象的几种方法
2021-04-28 09:29:24判断是否为空对象在实际开发中很常见,今天就让我们来整理一下有哪些方法吧。 1、空对象对应的字符串为 "{}" vardata={}; varb=JSON.stringify(data)=="{}"; console.log(b);//true 2、for in varobj={}; var... -
判断对象值是否为空
2017-06-21 09:33:34* 判断对象值是否为空: * 若对象为字符串,判断对象值是否为null或空格; * 若对象为数组,判断对象值是否为null,或数组个数是否为0; * 若对象为List,判断对象值是否为null,或List元素是否个数为0; * ... -
VUE中判断对象是否为空的方法
2021-12-01 15:54:471、JSON.stringify(this.facAnalyssisFromTem) !== "{}") 2、Object.keys(this.facAnalysLifeVo).length === 0 -
Java判断对象属性全为空
2021-02-27 12:37:23List,如下面这种格式提交news[0].contentnews[0].title...news[3].contentnews[3].title在后台我们就需要判断 对象的属性值是否全为空/***判断该对象是否*@paramobj*@returnture表示所有属性为n... -
jquery 判断 对象是否为空,判断对象里面的属性是否为空
2020-08-20 15:33:35判断 obj 是否为空有很多种方法 ,我这里说比较常用的一种吧,有想知道 判断对象是否为空 其他方法的可以下方留言 var strobj =JSON.stringify(obj) //先将对象转换成 字符串 if(strobj == '{}'){ console.log('... -
vue.js怎么判断对象是否为空?
2020-12-28 22:53:46vue.js怎么判断对象是否为空?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。vue.js怎么判断对象是否为空?vue有两个方法可用方法一:JSON.stringify(evtValue)=='... -
判断对象的某些属性是否为空
2019-05-29 09:50:10背景:很多时候我们需要判断对象的某些属性中的值是否为空,然后进行操作,这里不需要整个的对象,只是需要获取对象中的某些属性进行判断,如果写很多的if进行判断,例如: if (StringUtils.isBlank(equipInfo.... -
关于jquery判断对象是否为空
2020-06-13 14:29:43可以判断对象为空 jquery也可以自定义对象,如 var obj = {},这种情况定义的对象不会有length属性, 则需要使用jquery方法: $.isEmptyObject() if($.isEmptyObject(obj) == true){ console.log("对象为空"); ... -
JavaScript判断对象是否为空对象或空数组
2021-01-13 17:46:57JavaScript判断变量是否为空对象或空数组 -
判断对象属性值是否为空
2019-03-05 14:10:15* <p>Description: 校验对象属性是否有空值</p> * @param obj * @param exceptNames 不需要校验的属性名称 * @return * @throws IllegalAccessException */ public static boolean ... -
判断对象是否为空
2019-04-23 07:32:03## 封装文件(util.ts)## 封装方法:/** * 判断对象是否为空 * @param value */ isBlank(value: any): boolean { if (value === null || value == undefined || value === "") { return true;... -
js快速判断对象里的每个值是不是空
2019-11-12 17:12:29我们在做前端开发的时候,会遇到有输入很多的查询条件,然后去后台查询数据,有时候对查询条件没有任何限制,但有的时候遇到特殊的情况,需要查询的条件不能为空,至少要...* 判断对象的值是不是全为空 */ objectV...