大家好,Leo又来了!!!最近在网上看到别人分析Objects中isNullfanfan方法来判断,我就想到之前写的一坨坨==null,突然很惭愧,特地去研究学习下,争取下次可以用上.

Object的常用方法

方法 作用
clone() 创建此对象的副本
equals() 判断他与某个对象是否“相等”
getClass() 返回此类运行时类,通过在反射时会用到
hashCode() 获取到这个对象的哈希码值
notify() 唤醒在对象监听器上等待的一个线程
notifyAll() 唤醒在此对象监听器上等待的所有线程
toString() 返回此对象的字符串表示
wait() 让当前线程进入等待状态

Objects的常用方法

hashCode

每一个对象都有自己的hashCode,不同对象的hashCode可能相同

hash

在Objects中,hash是传入参数是一个不定长度的参数,底层也是

isNull

在Objects中这个方式判断对象是否为null是非常优雅的,比如下面这段代码,如果每一个都用 == null,属实是比较乱了,但是如果我们使用isNull这种写法会简洁并且明了很多,代码也更加统一

    @Override
@Transactional(rollbackFor = Exception.class)
public void updateStudentById(Student student) { if (null == student) {
throw new RuntimeException("对象为空,更新失败!");
}
if (Objects.isNull(student)) {
throw new RuntimeException("对象为空,更新失败!");
} }

equals

这个方法在判断两个对象是否相等,或者字符串是否相等非常常用,那使用这个方法时也需要考虑一个问题就是a.equals(b),a不能为null,否则会抛出NullPointerException,但是在Objects.equals方法是可以很好避免这个问题,我们就可以减少对a是否非null的判断,在equals中是已经进行了判断

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

requireNonNull

requireNonNull方法传入一个对象,如果这个对象为null,就抛出空指针异常,也可以自定义抛出的异常信息message

public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}

compare

主要用于比较,我们可以自定义对应的比较器。

nonNull

可以用来判断对象是否非空

public static boolean nonNull(Object obj) {
return obj != null;
}

总之,希望大家可以把Objects这样的类用起来,让自己的代码长的更好看点啦

你知道Object类和Objects的常用方法吗的更多相关文章

  1. java 常用类库:Object类和Objects类

    1,Object类: Object类是所有的类,数组,枚举的父类,也就是说,JAVA中允许把任何的对象赋值给Object类(包括基础数据类型),当定义一个类的时候,没有使用extends关键字显示指定 ...

  2. 写出java.lang.Object类的六个常用方法

    java是面向对象的语言,而Object类是java中所有类的顶级父类(根类). 每个类都使用Object类作为超类,所有对象(包括数组)都实现这个类的方法,即使一个类没有用extends明确指出继承 ...

  3. Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类

    Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下: 1.面向对象是常见的一种思考习惯,符合人们的思考习惯.2.面向对象的出现,将复杂的事情简单化.3.面向对象的出现,将之前过程中 ...

  4. 【转载】JAVA基础复习与总结<三> Object类的常用方法

    Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类.这里主要总结Object类中的三个常用方法:toString().equ ...

  5. Object类的常用方法

    Object类是Java中所有类的始祖.如果没有明确的指定继承,则默认继承Object类.在Java中除了基本类型外都是Object类型的对象,包括数组. 1)equals方法 Object: pub ...

  6. Object类及其常用方法简介

    https://www.cnblogs.com/wxywxy/p/6740277.html Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认 ...

  7. 包和访问权限修饰符,.单例设计模式,.Object类常用方法,.内部类

    1.包和访问权限修饰符 1.1 包 为什么要导包? 将字节码文件(.class)文件进行分类存放 --->包 其实就是文件夹 import java.util.Arrays; 包的划分规则 方案 ...

  8. 最终父类【根类】:Object类&Objects类

    一.java.lang.Object类 1.Object类介绍 Object类是所有类的父类.一个类都会直接或间接继承自该类: ​ 该类中提供了一些非常常用的方法! 2.toString()方法 A: ...

  9. Object类的toString和Equals方法,以及Objects类的Equals方法

    Object类 toString()方法 public class Person { private String name; private int age; public Person() { } ...

  10. 重写Object类的equals方法-Objects类的equals方法

    重写Object类的equals方法 Object类的equals方法默认比较的是两个对象的地址值,没有意义所以我们学要重写equals方法,比较两个对象的属性值(name,age) 对象的属性值一样 ...

随机推荐

  1. R 曲线拐点

    x = seq(1,15) y = c(4,5,6,5,5,6,7,8,7,7,6,6,7,8,9) plot(x,y,type="l",ylim=c(3,10)) lo < ...

  2. k8s ingress

    ingress   ingress为k8s集群中的服务提供了入口,可以提供复制均衡,ssl终止和基于名称的虚拟主机,再生产环境中,常用的ingress有Treafik,Nginx,HAProxy,Is ...

  3. ssh双击互信

    默认公钥文件/root/.ssh/id_rsa.pub默认私钥文件/root/.ssh/id_rsa 只有将公钥文件文件拷到其他的服务器上才能登录别的服务器.   服务器A 192.168.1.133 ...

  4. mysql查询近N天的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  5. Java笔记第四弹

    File类创建功能 public boolean createNewFile();//当该文件名不存在时,创建一个由该抽象路径名命名的新空文件 public boolean mkdir();//创建由 ...

  6. Python学习笔记--高阶技巧(二)

    Socket服务端开发 基本步骤如下: socket客户端开发 基本步骤如下: 1.创建socket对象 2.连接到服务器 3.发送消息 4.接收返回消息 5.关闭连接 正则表达式 基础方法 matc ...

  7. Javaweb学习笔记第五弹

    preparedStatement 防止SQL注入:将敏感字符进行转义 1.获取PreparedStatement对象 String sql="selct * from 表名 where 列 ...

  8. MySQL学习(五)事务

    参考博客:https://www.cnblogs.com/kismetv/p/10331633.html 0.提交和回滚 注:mysql默认自动开启了事务. -- 手动开启事务 start trans ...

  9. Monkey二次开发 -- Monkey jar包构建

      前面已经下载好了Android源码,可以在对应目录下构建二次开发后的monkey jar包了:   当前环境:Ubuntu16.04,Andorid10源码. 1.初始化环境   cd进入andr ...

  10. springboot--配置格式文件

    修改端口号的三种方法 1.server.port = 80 2.新建application.yml文件. 3.新建application.yaml文件. 配置文件加载顺序: 当三个文件都存在时prop ...