诚之和:Java 的 Optional 并不能补充所有传统的 if-null-else 或 if-not-null-else 检查

Java 添加的​java.util.Optional​非常的受欢迎,并为总是不能返回非null值的方法提供了更流畅的代码。很不幸的是,​Optional​已被滥用,一种滥用,甚至已被过度使用。当与直接使用相比​null​没有明显优势时,我偶尔会遇到使用​Optional的代码。

当 Optional 与直接检查 null 相比没有任何优势,调用代码对它刚刚调用的方法的返回值使用​Optional.ofNullable(T)​时,可能会提示一个危险信号。如同所有的“危险信号”,这并不意味着将方法将返回值传递个​Optional.ofNullable(T)​(事实上,传递给期望 Optional 的 API 是必要的),但它的这种做法通常是用于不提供实际值,而不是直接使用返回值并检查它的是否为 null。

在 Optional 可用之前,用于检查 null 方法返回的代码以及对 null 响应采取一种方式和对非 null 响应采取另一种方式的代码如下所示)。

/**
 * Demonstrates approach to conditional based on {@code null} or
 * not {@code null} that is traditional pre-{@link Optional} approach.
 */
public void demonstrateWithoutOptional()
{
    final Object returnObject = methodPotentiallyReturningNull();
    if (returnObject == null)
    {
        out.println("The retur
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_45378258

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

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

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

打赏作者

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

抵扣说明:

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

余额充值