通过 IntelliJ 手把手教你用 java optional 类来解决空指针问题 (附视频)

这个不到10分钟的短视频,介绍了从 JDK 8 引入的 Java Optional 类的使用方法。内容包括Optional类的使用场景,以及如何使用of, ofNullable, get, isEmpty, elseOr, ifEmpty 等 Optional 的方法。每个方法都通过 IntelliJ 展示了代码编写过程和运行结果,以便于观众快速理解和上手。

视频链接:https://live.csdn.net/v/142471

在这里插入图片描述

有关 Java Optional

Java Optional 是从 JDK 8 中引入的,为了解决 Java 中空指针的问题。通过这个类 API 可以明确的告诉调用者,返回结果可能为空。这个类还提供了一些方法方便处理空指针的问题,比如 orElse 方法在结果为空时返回什么。结合 Java 的流式 (stream) 变成可以让代码更简洁清晰。

讨论

其实Java Optional 类有一个问题,如果返回 Optional 类的方法直接返回了 null 怎么办。在视频中,我的回答是这个没有办法,JDK 的说法是程序员必须保证返回的Optional 类不为空。这个是一个必须遵守的约定。比如视频中的 getName 函数就有可能返回 null。

static Optional<String> getName()
{
	// 这里可以直接返回 null,但是由于约定,我不能这样写
	return Optional.ofNullable(null);
}

在视频中由于时间有限,我没有展开来说。Java 实现 Optional 是使用新增类或者说新增 API 来实现的,所以只能通过跟程序员的约定来约束。相比之下 .Net 的 Nullable 类有编译器级别的支持,即使是函数中直接返回 null 编译器也会把它包装成 Nullable。比如如下代码,虽然是返回的 null,但是调用者得到的是一个 Nullable 对象。

int? getAge()
{
	return null;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值