Java 开发 - Objects 的 requireNonNull 方法

Objects 的 requireNonNull 方法

1、基本介绍
java 复制代码
public static <T> T requireNonNull(@RecentlyNullable T obj)
  1. 检查一个对象是否为 null,如果是 null 则抛出 NullPointerException
java 复制代码
public static <T> T requireNonNull(@RecentlyNullable T obj, @RecentlyNonNull String message)
  1. 检查一个对象是否为 null,带自定义错误消息
java 复制代码
public static <T> T requireNonNull(@RecentlyNullable T obj, @RecentlyNonNull Supplier<String> messageSupplier)
  1. 检查一个对象是否为 null,带 Supplier 延迟计算错误消息
2、演示
  1. 检查一个对象是否为 null
java 复制代码
Person person = new Person("张三", 18);
Objects.requireNonNull(person).introduce();
复制代码
# 输出结果

我是张三,我今年18岁
java 复制代码
Person person = null;
Objects.requireNonNull(person).introduce();
复制代码
# 输出结果

java.lang.NullPointerException
  1. 检查一个对象是否为 null,带自定义错误消息
java 复制代码
Person person = null;
Objects.requireNonNull(person, "person 不能为 null").introduce();
复制代码
# 输出结果

java.lang.NullPointerException: person 不能为 null
  1. 检查一个对象是否为 null,带 Supplier 延迟计算错误消息
java 复制代码
public String getErrorMessage() {
    System.out.println("getErrorMessage 被调用");
    return "person 不能为 null";
}
java 复制代码
Person person = null;
Objects.requireNonNull(person, () -> getErrorMessage()).introduce();
复制代码
# 输出结果

java.lang.NullPointerException: person 不能为 null
相关推荐
要开心吖ZSH1 小时前
一文搞懂:JDK 21 虚拟线程 vs N种异步方案,到底该怎么选?
java·数据库·jdk·虚拟线程
-银雾鸢尾-4 小时前
C#中的拓展方法
开发语言·c#
guodingdingh6 小时前
软件开发工作问题总结0718
java·开发语言·数据库
世人万千丶7 小时前
鸿蒙Flutter Flex多子组件权重分配
学习·flutter·华为·harmonyos·鸿蒙
咖啡八杯8 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育8 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
掘金码甲哥8 小时前
这块终端神器, 必须吹爆!
后端
糖果店的幽灵8 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
Csvn9 小时前
📊 SQL 入门 Day 8:集合操作 — 用 SQL 做数学里的"并交差"
后端·sql
腻害兔10 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程