你知道Object类和Objects的常用方法吗
大家好,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的常用方法吗的更多相关文章
- java 常用类库:Object类和Objects类
1,Object类: Object类是所有的类,数组,枚举的父类,也就是说,JAVA中允许把任何的对象赋值给Object类(包括基础数据类型),当定义一个类的时候,没有使用extends关键字显示指定 ...
- 写出java.lang.Object类的六个常用方法
java是面向对象的语言,而Object类是java中所有类的顶级父类(根类). 每个类都使用Object类作为超类,所有对象(包括数组)都实现这个类的方法,即使一个类没有用extends明确指出继承 ...
- Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类
Java是一种面向对象的语言,也就是将万事万物可以描述为对象,特点如下: 1.面向对象是常见的一种思考习惯,符合人们的思考习惯.2.面向对象的出现,将复杂的事情简单化.3.面向对象的出现,将之前过程中 ...
- 【转载】JAVA基础复习与总结<三> Object类的常用方法
Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类.这里主要总结Object类中的三个常用方法:toString().equ ...
- Object类的常用方法
Object类是Java中所有类的始祖.如果没有明确的指定继承,则默认继承Object类.在Java中除了基本类型外都是Object类型的对象,包括数组. 1)equals方法 Object: pub ...
- Object类及其常用方法简介
https://www.cnblogs.com/wxywxy/p/6740277.html Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认 ...
- 包和访问权限修饰符,.单例设计模式,.Object类常用方法,.内部类
1.包和访问权限修饰符 1.1 包 为什么要导包? 将字节码文件(.class)文件进行分类存放 --->包 其实就是文件夹 import java.util.Arrays; 包的划分规则 方案 ...
- 最终父类【根类】:Object类&Objects类
一.java.lang.Object类 1.Object类介绍 Object类是所有类的父类.一个类都会直接或间接继承自该类: 该类中提供了一些非常常用的方法! 2.toString()方法 A: ...
- Object类的toString和Equals方法,以及Objects类的Equals方法
Object类 toString()方法 public class Person { private String name; private int age; public Person() { } ...
- 重写Object类的equals方法-Objects类的equals方法
重写Object类的equals方法 Object类的equals方法默认比较的是两个对象的地址值,没有意义所以我们学要重写equals方法,比较两个对象的属性值(name,age) 对象的属性值一样 ...
随机推荐
- springboot使用MD5加密
(11条消息) SpringBoot项目-密码MD5加密_springboot md5加密_wdfxfff的博客-CSDN博客 (11条消息) 创建MD5工具类_md5依赖_天天喝旺仔的博客-CSDN ...
- unity 开发小技巧之C#篇 ----持续更新
1.ToString()方法是可以重写的 2.Start()方法可以主动调用 3.接口可以直接使用 jiekou?.Invoke() 来调用所有继承该接口的方法 4.Json 列表和服务器需要的数据不 ...
- 之前学的yield
生成器&迭代器 生成器的特性1.生成器是一个有yield关键字的函数对象,yield暂停并保存并返回调用结果2.第一次通过next开始运行这个函数,以后每次next就从yield开始继续运行函 ...
- finereport连接sql server
1.添加jdbc 2.选择sql server 3.jdbc:sqlserver://localhost:1433(localhost=其他IP地址)
- 【BUUCTF】ACTF2020 新生赛Include1 write up
查看源代码+抓包都没有发现什么信息,只有这两个东东 <meta charset="utf8"> Can you find out the flag? <meta ...
- OO多项式求导作业总结
一.程序分析 1.1第一次作业 第一次作业是简单的多项式求导,甚至没有括号嵌套.但是,就是这个在如今看来如此简单的作业,由于俺寒假过于起飞,pre没做,正则表达式也不会(属实拉跨),一度想用c语言字符 ...
- vue横向滑动
代码 <template> <div> <!-- 左侧的滑动模块 --> <div class="scroll-box" :style=& ...
- GO语言学习笔记-方法篇 Study for Go ! Chapter five - Method
持续更新 Go 语言学习进度中 ...... GO语言学习笔记-类型篇 Study for Go! Chapter one - Type - slowlydance2me - 博客园 (cnblogs ...
- Android笔记--Android+数据库的增加数据的实现
具体实现 添加成功: 界面代码很简单,直接忽略. 连接数据库的代码: Connect.java package com.example.myapplication.database; import a ...
- Spring Boot中如何优雅地实现异步调用?
前言 SpringBoot想必大家都用过,但是大家平时使用发布的接口大都是同步的,那么你知道如何优雅的实现异步呢? 这篇文章就是关于如何在Spring Boot中实现异步行为的.但首先,让我们看看同步 ...
