Java常用类库-Objects-个人学习总结

本文仅记录作者目前学习觉得常用的方法,想了解得更详尽,可以参考Java官方API文档。

有错误欢迎指正。

java.util.Objects

包含了很多静态实用程序方法的类,用于操作对象或在操作之前检查某些条件。

这些实用程序包括 null 或 null方法,用于计算对象的哈希代码、返回对象的字符串、比较两个对象,以及检查索引或子范围值是否超出范围。

1.equals

public static boolean equals(object a,object b)

和 Objcet.equals(Object obj)一样用于判断两个对象的内容是否相等。

相比于 Objcet.equals(Object obj)更简便。

Objcet.equals(Object obj)方法是将.前面的作为调用对象,括号里的对象作为参数返回值。需要判断.前面的调用对象是否为 null,为 null 会抛出NullPointerException 空指针异常,使用时得确保调用对象不为 null。

而 Objects.equals(object a,object b) 则不用考虑对象是否为 null 的问题。

举例:

class Main {
    public static void main(String[] args) {
        String a = "abc";
        String b = "abc";
        String c = null;
        System.out.println(Objects.equals(a,b));
        System.out.println(Objects.equals(a,c));
    }
}

结果:

true
false

2.hashCode

public static int hashCode​(Object o)

返回调用对象的哈希码,null的值为0

3.isNull

public static boolean isNull​(Object obj)

判断传入值是否为 null,为 null 则返回 ture,为 非null 则返回 false

4.nonNull

public static boolean nonNull​(Object obj)

判断传入值是否为 非null,为 非null 则返回 ture,为 null 则返回false

34举例:

class Main {
    public static void main(String[] args) {
        String a = "abc";
        String b = null;
        System.out.println(Objects.isNull(a));
        System.out.println(Objects.isNull(b));
        System.out.println(Objects.nonNull(a));
        System.out.println(Objects.nonNull(b));
    }
}

结果`

false
true
true
false

注意:3 4 从1.8版本才开始

5.requireNonNull

public static T requireNonNull​(T obj)

检查传入对象是否为 null,不是 null 返回非 null值即本身。
是 null,NullPointerException异常

public static T requireNonNull​(T obj, String message)

跟上面那个类似,不过可以在对象为 null 时抛出自定义异常作为提示。

举例:

class Main {
    public static void main(String[] args) {
        String a = "异常异常异常";
        String b = null;
        System.out.println(Objects.requireNonNull(b,a));

    }
}

结果:

Exception in thread "main" java.lang.NullPointerException: 异常异常异常

6.requireNonNullElse

public static T requireNonNullElse​(T obj, T defaultObj)

至少输出两个对象中的一个:

第一个对象为空时,输出第二个对象

对一个对象不为空时,输出第一个对象

两者都为空时,会 NullPointerException 空指针异常

举例:

class Main {
    public static void main(String[] args) {
        String a = "abc";
        String b = "aaa";
        String c = null;
        System.out.println(Objects.requireNonNullElse(a,b));
        System.out.println(Objects.requireNonNullElse(b,a));
        System.out.println(Objects.requireNonNullElse(a,c));
        System.out.println(Objects.requireNonNullElse(c,a));

    }
}


结果:

abc
aaa
abc
abc

7.toString

public static String toString​(Object o)

调用参数 非null 则返回 非null 得结果。

调用参数为 null 则返回“null”。

public static String toString​(Object o, String nullDefault)

调用的第一个参数 非null,则在第一个参数上调用toString的结果(就是返回自己啦)。
否则返回第二个参数。

举例:

class Main {
    public static void main(String[] args) {
        String a = "abc";
        String b = null;
        String c = "aaa";
        System.out.println(Objects.toString(a,b));
        System.out.println(Objects.toString(b,c));

    }
}

结果:

abc
aaa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值