• Objects.equals判空处理


    Objects.equals判空处理语法糖

    先看一个例子:

    package demo;
    
    import java.util.Objects;
    
    public class objectsUtilDemo {
    
        public static void main(String[] args) {
            Object o1 = new Object();
            Object o2 = null;
            System.out.println(o1.equals(o2));
            System.out.println(Objects.equals(o1, o2));
            System.out.println(o2.equals(o1));
        }
    }
    

    打印结果如下:

    false
    false
    Exception in thread "main" java.lang.NullPointerException
    	at demo.objectsUtilDemo.main(objectsUtilDemo.java:12)
    

    第12行的空指针异常其实是个很明显的错误,但在实际开发中很容易出现,因为像o2这个对象很可能是经过复杂处理的返回(比如是一个方法的返回值,或者某个第三方库的方法值),不是像例子中这么明显,于是就很容器忽略null对象调用equals方法肯定空指针异常的问题。

    而Objects.equals就提供了一个判空的封装(语法糖),来让我们不必考虑o2以及o1是否为空,直接返回是否相等。看下源码:

     public static boolean equals(Object a, Object b) {
            return (a == b) || (a != null && a.equals(b));
        }
    

    非常简短优雅:

    • a==b,a和b都可以为null;
    • a != null && a.equals(b) 排除了a为null的情况。
  • 相关阅读:
    网页制作--标签,表格,表单,框架
    sql数据库框架
    数据库的触发器
    数据库的复制与附加
    sql数据库随笔
    sql常用函数
    sql数据类型、约束
    sql数据库查询
    数据库增删改查
    数据库基本概念
  • 原文地址:https://www.cnblogs.com/silenceshining/p/13917212.html
Copyright © 2020-2023  润新知