美文网首页
Java8 Optional 示例

Java8 Optional 示例

作者: 写代码的杰西 | 来源:发表于2021-06-10 10:23 被阅读0次
    import lombok.Data;
    
    import java.util.Optional;
    
    public class OptionalTest {
        public static void main(String[] args) {
            Person person = null;
            //会抛出空指针异常
    //        Optional<Person> optional1 = Optional.of(person);
            //可以接受空对象不会抛出异常
            Optional<Person> optional2 = Optional.ofNullable(person);
            //是否存在
            System.out.println(optional2.isPresent());
            //orelse 不存在的话就怎么做
            person = optional2.orElse(new Person());
            //or else get 接受一个函数接口
            optional2.orElseGet(Person::new);
            //or else 无论如何都会创建一个新对象。 or else get 则是在需要时才会创建
            //----
            //get方法 获取这个值 不存在时会抛出空指针异常
    //        Person person1 = optional2.get();
            //map 方法 把值转换为另一个值
            String name = optional2.map(Person::getName).orElse("default name");
            System.out.println(name);
            //filter 方法 判断在不在条件内
            person.setAge(10);
            Optional<Person> optional3 = Optional.ofNullable(person);
            boolean isLt20 = optional3.map(Person::getAge).filter(a -> a < 20).filter(a->a>5).isPresent();
            System.out.println("is less than 20:"+isLt20);
        }
    }
    
    @Data
    class Person{
        private String name;
        private Integer age;
    }
    

    相关文章

      网友评论

          本文标题:Java8 Optional 示例

          本文链接:https://www.haomeiwen.com/subject/lhjueltx.html