• 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上的。

  • 相关阅读:
    90后是怎么了
    从GNOME切换到KDE了
    Ubuntu 12.04中安装Evolus Pencil原型图绘制软件
    wine qq 2012 for linux
    发现来博客园比去csdn早
    [转]代理(Proxy)和委派(Delegate)的区别
    Debian Stable分支对于开发者的意义[续软件系统。。。]
    xj3d svn org.web3d目录结构分析
    不自觉的就陷入OS发行版选择的泥潭
    DNN Test
  • 原文地址:https://www.cnblogs.com/television/p/9265027.html
Copyright © 2020-2023  润新知