Optional java 用法_java中Optional的正确使用方法

java8 引入了Optional类,让我们可以以一种更加优雅的方式处理代码里的各种null值,但如果只是用Optional的isPresent()方法来代替原来代码中的null判断的话,其实和原来的写法也没有太大的区别,代码依然臃肿,也依然不利于阅读。

实际上除了isPresent()之外,optional提供的map(), orElse(), orElseGet()等方法才是Optinal真正的强大之处,下面的代码组合使用了map()和orElse()方法来处理null值,看下是不是比用各种if-else来判断null值优雅多了呢。

import java.util.Optional;

public class TestOptional {

public static void main(String[] args) {

Entityt1 e1 = new Entityt1();

//        Entityt1 e1 = null;

//e1.getS1()为null

System.out.println(e1.getS1());

//option - 对于null值判断的优雅写法(将原本需要复杂if-else的判断写成一句)(若e1为null也会打印"empty val")

Optional op1 = Optional.ofNullable(e1);

System.out.println(op1.map(op2 -> op2.getS1()).orElse("empty val"));

//以下语句与上面用optional的语句等效

if (e1 != null) {

if (e1.getS1() != null) {

System.out.println(e1.getS1());

} else {

System.out.println("empty val");

}

} else {

System.out.println("empty val");

}

}

}

class Entityt1{

private String s1;

private String s2;

public String getS1() {

return s1;

}

public void setS1(String s1) {

this.s1 = s1;

}

public String getS2() {

return s2;

}

public void setS2(String s2) {

this.s2 = s2;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值