首页IT科技object类的常用6个方法(你知道Object类和Objects的常用方法吗)

object类的常用6个方法(你知道Object类和Objects的常用方法吗)

时间2025-04-29 09:59:27分类IT科技浏览3496
导读:大家好,Leo又来了!!!最近在网上看到别人分析Objects中isNullfanfan方法来判断,我就想到之前写的一坨坨==null,突然很惭愧,特地去研究学习下,争取下次可以用上....

大家好            ,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这样的类用起来,让自己的代码长的更好看点啦😂

声明:本站所有文章               ,如无特殊说明或标注                ,均为本站原创发布                。任何个人或组织   ,在未征得本站同意时            ,禁止复制          、盗用                 、采集      、发布本站内容到任何网站        、书籍等各类媒体平台     。如若本站内容侵犯了原著者的合法权益                ,可联系我们进行处理         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
spring cloud alibaba微服务原理与实战(springcloudalibaba架构(27):将微服务的配置内容转移到nacos) vuex的五大属性(vuex的五个属性及使用方法示例)