精华内容
下载资源
问答
  • 判断对象的值为空
    千次阅读
    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 ,"")的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 文章目录前言一、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,加油吧,小伙伴们,快快动起来,代码搞起来!

    展开全文
  • 首先来看一下工具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:10
    js判断对象是否为空 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,集合类、Mapempty** @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:42
    js 判断对象是否为空的四种方法
  • Java判断对象是否为空

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

    万次阅读 2020-03-30 22:29:29
    最近项目中遇到一个问题,在用户没填数据的时候,我们需要接收从前端传过来的对象null,但是前端说他们一个一个判断特别麻烦,只能传个对象过来,我第一个想法就是可以通过反射来判断对象是否为空。 第一版: ...
  • Object.keys()方法会返回一个由一个给定对象...判断一个对象是否为空,可是通过Object.keys()这个方法通过判断它的长度来进行判断 if (Object.keys(object).length === 0){ return '的' } 循环一个数组操作,...
  • 微信小程序如何判断定义的对象是否为空、如何判断对象中的未定义的是否存在
  • java对象如何判断是否为空

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

    千次阅读 2022-04-09 16:38:38
    JS判断对象是否为空的几种方法
  • JS 判断对象的所有属性是否为空

    千次阅读 2022-05-11 11:19:33
    JS 判断对象所有的属性是否为空
  • JAVA判断对象以及属性是否为空

    千次阅读 2020-12-18 11:45:27
    JAVA判断对象以及属性是否为空 import java.lang.reflect.Field; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; /** * @author Tate * @date 2020-12-18 11:10 * @title ...
  • Object.keys(xxx).length==0 js判断对象是否为空对象的几种方法 1.将json对象转化json字符串,再判断该字符串是否"{}" var data = {}; var b = (JSON.stringify(data) == "{}"); alert(b);//true 2...
  • 判断是否为空对象在实际开发中很常见,今天就让我们来整理一下有哪些方法吧。 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:47
    1、JSON.stringify(this.facAnalyssisFromTem) !== "{}") 2、Object.keys(this.facAnalysLifeVo).length === 0
  • Java判断对象属性全为

    千次阅读 2021-02-27 12:37:23
    List,如下面这种格式提交news[0].contentnews[0].title...news[3].contentnews[3].title在后台我们就需要判断 对象的属性是否全为/***判断对象是否*@paramobj*@returnture表示所有属性n...
  • 判断 obj 是否为空有很多种方法 ,我这里说比较常用的一种吧,有想知道 判断对象是否为空 其他方法的可以下方留言 var strobj =JSON.stringify(obj) //先将对象转换成 字符串 if(strobj == '{}'){ console.log('...
  • vue.js怎么判断对象是否为空

    千次阅读 2020-12-28 22:53:46
    vue.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判断变量是否为空对象数组
  • 判断对象属性是否为空

    千次阅读 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...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 620,749
精华内容 248,299
关键字:

判断对象的值为空