java objects_Java Objects类

Java面向对象设计 - Java Objects类

Java在java.util包中有一个实用程序类Objects用于处理对象。

它由所有静态方法组成。 Objects类中的大多数方法都会优雅地处理空值。

以下是类中的方法列表。他们的描述遵循列表。int compare(T a, T b, Comparator c)

如果参数相同,则返回0,否则返回c.compare(a,b)。因此,如果两个参数都为null,则返回0。

boolean deepEquals(Object a, Object b)

检查两个对象是否相等。如果两个参数都相等,则返回true。否则,它返回false。如果两个参数都为null,则返回true。

boolean equals(Object a, Object b)

比较两个对象是否相等。如果两个参数相等,则返回true。否则,它返回false。如果两个参数都为null,则返回true。

int hash(Object... values)

为所有指定的对象生成哈希码。它可以用于计算对象的哈希码,该哈希码基于多个实例字段。

int hashCode(Object o)

返回指定对象的哈希码值。如果参数为null,则返回0。

boolean isNull(Object obj)

如果指定的对象为null,isNull()方法返回true。否则,它返回false。您还可以使用比较运算符==检查对象是否为null,例如,obj == null返回obj的true为null。

boolean nonNull(Object obj)

执行与isNull()方法相反的检查。

T requireNonNull(T obj)

T requireNonNull(T obj, String message)

T requireNonNull(T obj, Supplier messageSupplier)

检查参数是否为null。如果参数为null,它会抛出一个NullPointerException异常。此方法设计用于验证方法和构造函数的参数。

第二个版本可以指定当参数为null时抛出的NullPointerException的消息。

第三个版本的方法将一个Supplier作为第二个参数。

String toString(Object o)

String toString(Object o, String nullDefault)

如果参数为null,则toString()方法返回一个“null”字符串。对于非空参数,它返回通过调用参数的toString()方法返回的值。

HashCode

下面的代码演示了如何使用来自Objects类的方法来计算哈希码。import java.util.Objects;

public class Main {

public static void main(String[] args) {

// Compute hash code for two integers, a char, and a string int hash = Objects.hash(10, 800, "\u20b9", "Hello");

System.out.println("Hash Code is " + hash);

}

}

上面的代码生成以下结果。

ae6c8ecc8bb287e1d02f79636c3e6bd5.png

equals

以下代码显示了如何使用Objects类中的equals方法来比较两个对象。import java.util.Objects;

public class Main {

public static void main(String[] args) {

// Test for equality boolean isEqual = Objects.equals(null, null);

System.out.println("null is equal to null: " + isEqual);

isEqual = Objects.equals(null, "XYZ");

System.out.println("null is equal to XYZ: " + isEqual);

}

}

上面的代码生成以下结果。

f85289293f07f8beb98087482fbd7411.png

toString

以下代码显示如何使用toString方法从对象将对象转换为字符串。import java.util.Objects;

public class Main {

public static void main(String[] args) {

// toString() method test System.out.println("toString(null) is " + Objects.toString(null));

System.out.println("toString(null, \"XXX\") is "

+ Objects.toString(null, "XXX"));

}

}

上面的代码生成以下结果。

6b6cd7885653e5e13c6bc5be540e1563.png

requireNonNull

以下代码显示如何使用Objects类中的requireNonNull。import java.time.Instant;

import java.util.Objects;

import java.util.function.Supplier;

public class Main {

public static void main(String[] args) {

try {

printName("A");

printName(null);

} catch (NullPointerException e) {

System.out.println(e.getMessage());

}

try {

Supplier messageSupplier = () -> "Name is required. Error generated on "

+ Instant.now();

printNameWithSuplier("asdf", messageSupplier);

printNameWithSuplier(null, messageSupplier);

} catch (NullPointerException e) {

System.out.println(e.getMessage());

}

}

public static void printName(String name) {

Objects.requireNonNull(name, "Name is required.");

System.out.println("Name is " + name);

}

public static void printNameWithSuplier(String name,

Supplier messageSupplier) {

Objects.requireNonNull(name, messageSupplier);

}

}

上面的代码生成以下结果。

24cab4478828448db27225a51173e0c7.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值