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赋予了初始值的,则显示赋予的初始值。