Objects
概述
Objects 是一个工具类, 提供了一些方法去完成一些功能.
Objects 类中的常见的成员方法:

图1 Objects 类中的常见的成员方法
equals 方法
程序示例:
Javabean 类:
public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
测试类:
public class Demo1 { public static void main(String[] args) { // 1. 创建学生类的对象 Student s1 = null; Student s2 = new Student("zhangsan", 23); // 2. 比较两个对象的属性值是否相同 boolean result = s1.equals(s2); // NullPointerException: Cannot invoke "Object_demo.Student.equals(Object)" because "s1" is null System.out.println(result); } }
Java 中, 不能用 null 调用方法.
改写:
public class Demo1 { public static void main(String[] args) { // 1. 创建学生类的对象 Student s1 = null; Student s2 = new Student("zhangsan", 23); // 2. 比较两个对象的属性值是否相同 if (s1 != null) { boolean result = s1.equals(s2); System.out.println(result); } else { System.out.println("调用者为空"); // 调用者为空 } } }
改写测试类:
import java.util.Objects; public class Demo1 { public static void main(String[] args) { // 1. 创建学生类的对象 Student s1 = null; Student s2 = new Student("zhangsan", 23); // 2. 比较两个对象的属性值是否相同 boolean result = Objects.equals(s1, s2); System.out.println(result); // false // 细节: // 1. 方法的底层会判断 s1 是否为 null, 如果为 null, 直接返回 false // 2. 如果 s1 不为 null, 那么就利用 s1 再次调用 equals 方法 // 3. 此时 s1 是 Student 类型, 所以最终还是会调用 Student 中的 equals 方法. // 如果没有重写, 比较地址值, 如果重写了, 就比较属性值. } }

图1
isNull, nonNull 方法
程序示例:
public class Demo1 { public static void main(String[] args) { // public static boolean isNull(Obiect obi) 判断对象是否为 null, 为 nul1 返回 true, 反之返回 false Student s3 = new Student(); Student s4 = null; System.out.println(Objects.isNull(s3)); // false System.out.println(Objects.isNull(s4)); // true System.out.println(Objects.nonNull(s3)); // true System.out.println(Objects.nonNull(s4)); // false } }

图1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术