Jdk1.8新特性 - Optional

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013379717/article/details/89638637

一、说明

    Optional 是一个容器,它可以保存类型 T 或为 null 的 值 的容器

    Optional 提供了很多方法对值进行检测,可以很好的解决空指针异常

二、示例

    // 返回一个指定非空值的Optional,参数为null抛出空指针
    Optional<String> optional = Optional.of("JavaOptional");
    
    // 非空则返回指定值的Optional,否则返回描述为空的Optional
    Optional<String> optional = Optional.ofNullable(null);
    
    
    // 判断是否有值,即不为null
    boolean present = optional.isPresent();
    
    // 如果值不为空,就执行Lambda表达式
    optional.ifPresent( opt -> System.out.println(opt) );
    
    // 如果有值,则返回值,如果等于空则抛异常
    String value = optional.get();
    
    //如果值存在则返回值,否则返回指定的默认值
    String str = optional.orElse("Default String");
    
    // 如果值存在且和给定的断言匹配则返回该值描述的Optional,否则返回一个描述为空的Optional
    Optional<String> optional = optional.filter((opt) -> opt.length() < 20);

猜你喜欢

转载自blog.csdn.net/u013379717/article/details/89638637