精华内容
下载资源
问答
  • 判断一个对象是否为空
    千次阅读
    2020-04-26 15:07:02
    如何判断一个对象是否为空

    1、利用 Object.keys 方法 该方法会返回当前对象内所有返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。详情 Object.keys
    如果数组的长度不为空那么则说明对象不为空
    使用方法如下:

    	const obj = { name: '张三', age: 18, sex: '男' };
    	let arr = Object.keys(obj); // ['name', 'age', 'sex']
    	
    	if(arr.length){
    		return false;
    	} else {
    		return true;
    	}
    

    抽成方法:

    	function checkObj(obj){
    		if (typeof obj != 'object') thorw new Error('参数不是一个可遍历对象');
    		let _arr = Object.keys(obj);
    		return !!_arr.length; 
    	}
    	var obj = {};
    	checkObj(obj) // false
    	
    	obj = { name: '张三' }
    	checkObj(obj) // true
    	
    	obj = [];
    	checkObj(obj) // false
    	
    	obj = [1];
    	checkObj(obj); // true
    	
    	obj = function(){};
    	checkObj(obj) // Uncaught Error: 参数不是可遍历对象;
    

    2、使用for...in 循环,如果对象可循环那么不为空,否则为空对象 ;前提:对象属性是可遍历

    	function checkObj(obj){
    		for(let item in obj){
    			return true;
    		}
    		return false;
    	}
    	var obj = {};
    	checkObj(obj) // false
    	obj = {name:'张三'}
    	checkObj(obj);
    	obj = [];
    	checkObj(obj);
    	obj = [1];
    	checkObj(obj);
    	obj = function(){}
    	checkObj(obj) // false
    
    更多相关内容
  • java 判断一个对象是否为空对象

    万次阅读 2020-03-30 22:29:29
    最近项目中遇到一个问题,在用户没填数据的时候,我们需要接收从前端传过来的对象null,但是前端说他们一个一个判断特别麻烦,只能传个对象过来,我第一个想法就是可以通过反射来判断对象是否为空。 第一版: ...

    最近项目中遇到一个问题,在用户没填数据的时候,我们需要接收从前端传过来的对象为null,但是前端说他们一个一个判断特别麻烦,只能传个空对象过来,我第一个想法就是可以通过反射来判断对象是否为空。

    第一版:

    User.java

    public class User {
        private String username;
    
        private Boolean active;
    
        private Long id;
        // 省略get和set方法
    }
    

    ReflectUtil.java

    public class ReflectUtil {
        public static boolean isObjectNull(Object obj){
            if (obj != null) {
                Class<?> objClass = obj.getClass();
                Method[] declaredMethods = objClass.getDeclaredMethods();
                if (declaredMethods.length > 0) {
                    int methodCount = 0; // get 方法数量
                    int nullValueCount = 0; // 结果为空
    
                    for (Method declaredMethod : declaredMethods) {
                        String name = declaredMethod.getName();
                        if (name.startsWith("get") || name.startsWith("is")){
                            methodCount += 1;
                            try {
                                Object invoke = declaredMethod.invoke(obj);
                                if (invoke == null) {
                                    nullValueCount += 1;
                                }
                            } catch (IllegalAccessException | InvocationTargetException e){
                                e.printStackTrace();
                            }
                        }
                    }
                    return methodCount == nullValueCount;
                }
            }
            return false;
        }
    }
    
    

    TestReflect.java

    public class TestReflect {
        public static void main(String[] args) {
            User user = new User();
            System.out.println(ReflectUtil.isObjectNull(user));
        }
    }
    

    结果:

    true
    

    第一版 获取一个类的声明的方法,判断方法如果以get或者is开头就是get方法,然后通过反射调用改方法获取结果,再判断结果是否为空,如果结果为null的话就把nullValueCount+1,最后返回结果为空的值的数量和get方法数量比较的结果,如果两者数量相同则说明该对象为空,反之不为空。
    第一版也可以判断一个对象是否为空,但前提是对象必须使用包装类,没有默认值的就不行了,当然你也可以根据类型和返回值结果来判断对象是否为空,但是如果想忽略某个属性不做判断,改起来就有点麻烦了。 后来想知道spring 的BeanUtils 是怎么实现属性复制的就看了一下,发现了新的方法,于是就有了第二版。

    第二版:

    /**
         *  判断对象是否为空,
         * @param obj
         * @param ignoreProperties 忽略的属性
         * @return 如果get 方法的数量等于 属性为空的数量 返回true,否则false
         */
        public static boolean isNullObject(Object obj , String... ignoreProperties) throws IntrospectionException {
            if (obj != null) {
                Class<?> objClass = obj.getClass();
                BeanInfo beanInfo = Introspector.getBeanInfo(objClass);
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
    
                List<String> ignoreList = (ignoreProperties != null ? Arrays.asList(ignoreProperties) : null);
    
                int count = 1; // 结果为空的属性数量 初始化为1 去除Object的getClass方法
                int propertyCount = propertyDescriptors.length; // 属性数量
                if (ignoreList != null){
                    propertyCount -= ignoreList.size();
                }
    
                for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
                    Method readMethod = propertyDescriptor.getReadMethod();
                    String name = propertyDescriptor.getName();
                    if (readMethod != null && (ignoreList == null || !ignoreList.contains(name))) {
                        Class<?> returnType = readMethod.getReturnType();
                        String typeName = returnType.getSimpleName();
                        Object invoke = null;
                        try {
                            invoke = readMethod.invoke(obj);
                            if (invoke == null) {
                                count+=1;
                            }else {
                                switch (typeName) {
                                    case "String":
                                        if ("".equals(invoke.toString().trim())) {
                                            count += 1;
                                        }
                                        break;
                                    case "Integer":
                                        if ((Integer) invoke <= 0) {
                                            count += 1;
                                        }
                                        break;
                                    case "int":
                                        if ((int) invoke <= 0) {
                                            count += 1;
                                        }
                                        break;
                                    case "double":
                                        if ((double) invoke <= 0.0d) {
                                            count += 1;
                                        }
                                        break;
                                    case "Double":
                                        if ((Double) invoke <= 0.0D) {
                                            count += 1;
                                        }
                                        break;
                                    case "float":
                                        if ((float) invoke <= 0.0f) {
                                            count += 1;
                                        }
                                        break;
                                    case "Float":
                                        if ((Float) invoke <= 0.0F) {
                                            count += 1;
                                        }
                                        break;
                                    case "Long":
                                        if ((Long) invoke <= 0L) {
                                            count += 1;
                                        }
                                        break;
                                    case "long":
                                        if ((long) invoke <= 0L) {
                                            count += 1;
                                        }
                                        break;
                                }
                            }
                        } catch (IllegalAccessException | InvocationTargetException e) {
                            e.printStackTrace();
                        }
                    }
                }
                return propertyCount == count;
            }
            return true;
        }
    

    第一版和第二版思想基本都是一样的,都是通过读方法去判断返回值是否为空,只不过第二版在第一版上加强了可以忽略属性这个功能。
    通过spring 的beanutils发现PropertyDescriptor这个类,从名字看来是个属性描述器,描述属性相关的东西,通过属性描述器可以获取bean的属性名称,读写方法,使用起来还挺方便。
    通过Introspector内省类的静态方法getBeanInfo(Class<?> beanClass)获取BeanInfo,然后通过BeanInfo对象的getPropertyDescriptors()就可以返回属性描述器。
    由于没有太多研究就不多介绍了。
    如果你还有其他方法判断一个对象是否为空请留言,谢谢

    能力有限,水平一般,如有错误,请多指出。

    展开全文
  • “python”判断字符串是否为空用什么方法?s字符串 s.isalnum() 所有字符都是数字或者字母 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符都是数字 s.islower() 所有字符都是小写 s.isupper() 所有字符都是...

    “python”判断字符串是否为空用什么方法?

    s为字符串 s.isalnum() 所有字符都是数字或者字母 s.isalpha() 所有字符都是字母 s.isdigit() 所有字符都是数字 s.islower() 所有字符都是小写 s.isupper() 所有字符都是大写 s.istitle() 所有单词都是首字母大写,像标题 s.isspace() 所有字符女人就是要富养自己。你身上所有的焦虑和戾气,都是亏待出来的。不想被俗世浸透,那从现在开始,先爱上自己。小编们要对自己足够好,才能一直优雅到老。

    python 判断字符串是否为空用什么方法学会知足,人生最大的烦恼是从最没有意义的比较开始,这世界总有不如你的人,也总有比你强的人,当小编哭泣小编没有鞋子穿的时候,小编发现有人却没有了脚。

    aee9f54e88c5909958063890492e157e.png

    目前小编想到的最好的方法就是使用内置函数len。len是计算对象内元素个数的,如果对象元素为空,会返回0。 当然还有其他方法。

    python 判断字符串是否为空用什么方法?

    如何判断python objects.get对象为空一辈子就像一场戏,太快乐,太悲伤,都是因为活得太入戏。

    方法一:通过异常捕捉来实现逻辑 class FooClass:passk = FooClass()try: #do some thing you need print k.attexcept AttributeError as e: #error: has not attribute pass方法二:调用hasattr方法 hasattr(object, name)说明:判断对象object那时他说懂得你的深情厚意,以为自己终于掳获真心,到头来他牵的却是旁人的手。要到很久后你才明白吧,原来懂得是一回事,而选择,是另外一回事。

    如何判断一个实体类是否为空

    以java为例,判断一个实体类是否为空代码如下: /**判断对象或对象数组中每一个对象是否为空: 对象为null,字符序列长度为0,集合类、Map为empty */ public static boolean isNullOrEmpty(Object obj) { if (obj == null) return true; if (obj 小编是旅人,你是山水,无论多么喜欢也不能带走你,这就是遗憾。

    如何判断python函数返回的是否是空做一个最单纯的人,走一段最幸福的路。其他的,交给命运。

    小编不知道你这里的空是什么意思 是None还是‘’ 小编都都给你讲讲: None是一个空的对象,代表什么都没有。 而'',是一个字符串对象,代表一个空的字符串 如果返回值是None,你就用 if None:判断 如果返回‘’,你就用if len(‘’) == 0:判断发错了”又发错了”还是发错了”不知道这样搭讪好不好?

    python字符串相等if,python判断字符串是否为空用这里面有几种空的表示: None是一个空的对象,代表什么都没有; '',是一个字符串对象,代表一个空的字符串; 这两者是有区别的,下面举例具体说明: reaCode = Noneif ( reaCode == None ): print "is null"if ( reaCode is None ): print "is 你忍了好久不联系对方,然后发现人家一点都没在忍。

    python 判断文件是否为空if (a.txt不为空): upload(a.txt) #已写好的上传ftp函数 怎么写这个条件呢世界这么大,而找到真正喜欢可以落脚的地方,又实在的难。

    文件为空是什么意思,文件不存在还是文件的内容为空,如果是不存在: try: ____upload(a.txt) except: ____pass 如果是内容为空: data = open(a.txt).read() len(data)一下,具体的,文件为空长度小编不知道是不是为0.你自己测试一下。

    python中怎样判断一个dataframe非空?

    DataFrame有一个属性为empty,直接用DataFrame.empty判断就行。 例如,你的DataFrame为test_df,有 如果test_df为空,则 test_df.empty 返回 True,反之 返回False。 注意empty后面不要加()。 学习tips:查好你自己所用的Pandas对应的版本。

    PYTHON如何判断一个字典或者列表为空

    if py_obj: print '非空' if py_obj is None: print '空' if not py_obj: 非空喜欢就去表白,大不了连朋友都做不成。做朋友又有什么用,小编又不缺朋友,小编缺你。

    展开全文
  • [JS] 如何判断一个对象是否为空

    千次阅读 2021-09-16 12:14:47
    js判断空对象的几种方法 、将对象转为字符串比较 let a = {} console.log(JSON.stringify(a) === '{}') //true 二、for…in循环 function isEmpty(obj) { for (let key in obj) { return false } return true...

    js判断空对象的几种方法

    一、将对象转为字符串比较

    let a = {}
    console.log(JSON.stringify(a) === '{}') //true
    

    二、for…in循环

    function isEmpty(obj) {
      for (let key in obj) {
        return false
      }
      return true
    }
    console.log(isEmpty(a)) //true
    

    三、Object.getOwnPropertyNames()

    Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
    用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。

    console.log(Object.getOwnPropertyNames(a).length == 0) //true
    

    四、Object.keys()

    该方法属于 ES5 标准,IE9 以上和其它现代浏览器均支持。Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致。
    用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。

    let keys = Object.keys(a)
    console.log(keys.length == 0) //true
    

    完整代码:

    //js判断空对象的几种方法
    //一、将对象转为字符串比较
    let a = {}
    console.log(JSON.stringify(a) === '{}') //true
    
    //二、for…in循环
    function isEmpty(obj) {
      for (let key in obj) {
        return false
      }
      return true
    }
    console.log(isEmpty(a)) //true
    
    //三、Object.getOwnPropertyNames()
    //Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名
    //(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
    //用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。
    console.log(Object.getOwnPropertyNames(a).length == 0) //true
    
    //四、Object.keys()
    //该方法属于 ES5 标准,IE9 以上和其它现代浏览器均支持。
    //Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,
    //数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致。
    //用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。
    let keys = Object.keys(a)
    console.log(keys.length == 0) //true
    

    运行结果:
    在这里插入图片描述

    展开全文
  • 如何判断一个对象是否为空{}

    万次阅读 2019-05-28 12:34:57
    我们想要判断对象是否为空,像基本类型那样判断是不可以的, ==={} ?这样是错误的, 因为只是比较引用地址是否相同,所以可以采取下面的方法来进行判断 1.根据for...in遍历对象,如果存在则返回true,否则返回false...
  • JS中如何判断一个对象是否为空对象

    万次阅读 2018-07-03 21:58:34
    1. 通过 for...in... 遍历属性 ,如果是空对象返回false, 否则返回 true 。例: var judgeObj = function(obj){ for(var item in obj){ return true; } return false;... 通过ES6新增的一个Ob...
  • ES6 判断一个对象是否为空

    千次阅读 2020-12-28 16:03:12
    ES6新增的一个方法 Object.keys(对象) Object.keys() 如果对象为空,则返回一个给定对象的自身可枚举属性组成的数组 如果对象为空,则返回数组
  • JavaScript判断一个对象是否为空

    千次阅读 2018-11-04 18:10:32
    一个函数 isEmptyObject,判断一个对象是不是空对象 function isEmptyObject(obj){ for(var item in obj){ return false } { return true } } console.log(isEmptyObject( {} )); //true console....
  • if 判断一个对象是否为空

    千次阅读 2020-04-15 16:15:59
    如果我们的对象为空,他会返回一个空数组,如下: var a = {}; Object.keys(a) // [] 我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。 if (Object.keys(obj).length === 0...
  • 小程序 判断一个对象是否为空

    千次阅读 2020-04-21 13:36:11
    如果我们的对象为空,会返回一个空的数组,如下: var temp = {}; Object.keys(temp) // [] 我们可以依靠Object.keys()这个方法通过判断它的长度来判断是否为空 if(Object.keys(object).length ...
  • 如何判断一个对象是否为空对象:{}

    千次阅读 2018-12-05 13:46:10
    由于项目中路由地址比较多,总不能挨个去遍历router.js去判别是什么地址,到底有没有传参,因此我想着是不是可以通过this.$route.params来进行一个判断,如果this.$route.params是空对象则表示无参数,如果this.$...
  • 如何判断一个对象的内容是否为空

    千次阅读 2021-02-28 19:04:52
    原因使用Controller的...搜索一番,找到一个不错的思路:利用反射获取所有字段,再判断内容是否为null。初步代码如下/*** 注意,如果order是null,也返回true。**@paramorder*@return*/private booleanisOrderAll...
  • 小程序判断一个对象是否为空

    万次阅读 2018-09-13 13:13:24
    如果我们的对象为空,他会返回一个空数组,如下: var a = {} Object.keys(a) // [] 我们可以依靠Object.keys()这个方法通过判断它的长度来知道它是否为空。 if (Object.keys(object).leng...
  • python判断一个对象是否为空的方法

    万次阅读 2018-03-03 21:58:26
    判断对象是否为空:复制代码 代码如下:&gt;&gt;&gt; eth = {"eth0″:"192.168.1.1″}&gt;&gt;&gt; any(eth)True&gt;&gt;&gt; eth = {}&gt;&gt;&gt; any...
  • java判断对象是否为空

    千次阅读 2021-02-12 10:58:03
    把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现...
  • 一、js判断一个对象是否为空 方法一: let obj1 = {} let obj2 = {a:1} function empty(obj){ for (let key in obj){ return false; //非空 } return true; //为空 } console.log(empty(obj1)) //true为空 console....
  • 字符串作为特殊的对象类 我们有的时候要判断是否为null或者 直接用 if (str != null && str.equals("")) {} 即可。 其他对象(容器)的话 就直接: if (obj != null){} 就完事了 ...
  • 首先来看一下工具StringUtils的判断方法:种是org.apache....这两种StringUtils工具类判断对象是否为空是有差距的:StringUtils.isEmpty(CharSequence cs); //org.apache.commons.lang3包下的StringUtils类,判...
  • js判断一个对象是否空对象

    千次阅读 2022-03-21 14:26:14
    js如何判断一个对象是否空对象,本文给出三个方法。 二、采用for…in…进行遍历 最常见的思路就是使用for....in...遍历属性,真则非空对象假则为空对象。 <script> function isEmptyObj(obj) { ...
  • js 判断一个 Object 对象是否为空

    万次阅读 2019-04-22 17:27:07
    判断一个对象是否为空对象,本文给出三种判断方法: 1.最常见的思路,for...in...遍历属性,真则“非空数组”;否则数组” for (var i in obj) { // 如果不为空,则会执行到这一步,返回true return ...
  • 怎么判断一个对象里的属性是否为空的怎么判断一个对象里的属性是否为空的,或者判断对象是否一个实体!------解决方案--------------------引用:怎么判断一个对象里的属性是否为空的,或者判断对象是否...
  • Object.keys()方法会返回一个一个给定对象...判断一个对象是否为空,可是通过Object.keys()这个方法通过判断它的长度来进行判断 if (Object.keys(object).length === 0){ return '的' } 循环一个数组操作,...
  • js 判断一个 object 对象是否为空

    万次阅读 多人点赞 2017-09-27 15:46:51
    js 判断一个 object 对象是否为空转载原文判断一个对象是否为空对象,本文给出三种判断方法:1.最常见的思路,for...in... 遍历属性,真则“非空数组”;否则数组”for (var i in obj) { // 如果不为空,...
  • Java判断对象是否为空

    千次阅读 2021-07-27 20:25:36
    Java方法isEmpty汇总问题描述参考资料 问题描述  。 参考资料 java判断一个字符串是否为空,isEmpty和isBlank的区别 Java判断对象是否为空的方法:isEmpty,null," " Java中判断数组是否为空
  • java对象如何判断是否为空

    千次阅读 2021-03-06 15:47:58
    下面我们来看一下java中判断对象是否为空的方法:(推荐:java视频教程)首先来看一下工具StringUtils的判断方法:种是org.apache.commons.lang3包下的;另种是org.springframework.util包下的。这两种StringUtils...
  • js判断对象是否为空

    千次阅读 2022-03-02 10:51:10
    js判断对象是否为空 JSON.stringify()。将 JavaScript 值转换 JSON 字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b); //true 为空, false 不为空` es6的...
  • js 判断对象是否为空

    千次阅读 2022-02-15 14:07:42
    js 判断对象是否为空的四种方法
  • js 判断一个对象是否为空方法总结

    千次阅读 2018-10-23 20:41:50
    通常情况下,工作中写逻辑的时候都会用到判断一个对象是否为空的方法,巧的是今天正好有人问我这个问题,我竟然没回答上来,很尴尬,决定研究一下总结下来,之前研究过但是久了不用就生疏了!大意啊 1.将json对象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 768,549
精华内容 307,419
关键字:

判断一个对象是否为空

友情链接: 2017国电赛A.zip