java8中的Optional的使用

import java.util.Optional;

public class TestOptional {
    public static void main(String[] args) {
        TestDemo testDemo = new TestDemo();
//        testDemo.setCount(2);
        //表示的是如果不给count赋予初始值的时候,那么就会是1,否则就是赋予的初始值。
        int count3 = Optional.ofNullable(testDemo).map(item -> item.getCount()).orElse(1);
        System.out.println("count3:"+count3);
    }
}

  

运行结果:

count3:2(如果给count赋予初始值的时候),

count3:1(如果不给count赋予初始值的时候)

import java.util.Optional;

public class TestOptional {
    public static void main(String[] args) {
        TestDemo testDemo = new TestDemo();
//        testDemo.setCount(2);
        //表示的是如果不给count赋予初始值的时候,那么就会是1,否则就是赋予的初始值。
        int count3 = Optional.ofNullable(testDemo).map(item -> item.getCount()).orElseThrow(()->new RuntimeException("count没有赋予初始值"));
        System.out.println("count3:"+count3);
    }
}

  

运行结果:

Exception in thread "main" java.lang.RuntimeException: count没有赋予初始值
at com.zyq.TestOptional.lambda$main$1(TestOptional.java:10)
at java.util.Optional.orElseThrow(Optional.java:290)
at com.zyq.TestOptional.main(TestOptional.java:10)

如果count赋予了初始值的,则显示赋予的初始值。

原文地址:https://www.cnblogs.com/dongyaotou/p/14888214.html