zoukankan      html  css  js  c++  java
  • jdk1.8Option类

    目的:为了解决一个方法返回的参数可能为空而无法传入到新的方法做参数的问题,java8产生了新的内容:Option。

    定义:Option是一个可以为空的容器对象(注意本质上是个万能对象)。

    常用方法:1、ispresent():如果值存在的话就调用ispresent()返回true。

        2、get():如果值存在的话就调用get()返回这个值。

        3、of(value):为非null值创建一个Option,(如果传入null,就报空指针异常)

          Optional<String> name = Optional.of("LinkinPark...");

        4、empty():用来返回一个空对象,该对象调用ispresent()方法返回false,调用get报错,no value present

        5、ofNullable():为指定的值创造个Option,如果值为空则返回一个空Option。

            public static <T> Optional<T> ofNullable(T value) {

            return value == null ? empty() : of(value);

            }

        6、orElse:如果有值就将其返回,没有值的话返回其他指定值

            public T orElse(T other){

              return value!=null?value:other;

            }      

        7、orElseGet():作用同orElse()方法,但是,orElse()方法的参数是指定一个字符串,而orElseGet()方法的参数是一个接口,可以从接口取得指定值。

          User user = Optional.ofNullable(User.getById(userId)).orElseGet(() -> User.createUser(userId));

          上面这一句用来生成一个User对象,项目中,前端会传来一个userid,如果该userid存在,就直接返回该User对象(调用的是dao层的getById方法),如果不存在这个userid则调用方法创建一个新的User对象。类似于三目运算符,但是是用在Option上的。

  • 相关阅读:
    运维实战:两台服务器http方式共享yum软件仓库
    初始化thinkphp6.0出现的问题解决
    记一次续签SSL证书导致微信小程序部分机型无法访问网站接口
    微信小程序-订阅消息验证发送值有效格式
    微信小程序分包优化
    MySQL timeout 参数详解
    mysql 事件
    springboot 远程拉取配置中心配置
    使用springboot的resttmplate请求远程服务的时候报 403问题
    for 循环 与增强的for循环 经验小结
  • 原文地址:https://www.cnblogs.com/television/p/9265027.html
Copyright © 2011-2022 走看看