object类的常用6个方法(你知道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这样的类用起来,让自己的代码长的更好看点啦😂
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!