【Java】Optional类

  1. Optional类是什么
    Optional 类是Java8引入,目的是用于解决空指针异常问题
    可包含对象、可为空

  2. Optional类怎么用

    //Optional学习
    public static void main(String[] args) {
        String s = null;
        // 创建Optional对象
        Optional EMPTY = Optional.empty();
        System.out.println(EMPTY);
        Optional optional = Optional.ofNullable(s);
        /**
         * Optional.of(null) : 抛异常
         * Optional.ofNullable(null) : 不会抛异常,就建一个null
         *
         * optional.get() : 如果是null,直接get会抛异常
         * optional.orElse(如果value是null,else输出的结果)
         *  optional.orElseGet() :和orElse类似,差异在于返回结果对应非空值时,orElse创建对象,orElseGet不创建对象,性能差异。
         * optional.isPresent() :判断变量是否存在,,存在返回TRUE
         * optional.ifPresentOrElse(result1,result2):如果存在输出结果1,不存在输出结果2
         *
         */

        System.out.println(optional.orElse("s is null"));
        System.out.println((optional.isPresent() ? optional.get() : "s is null"));
    }
  1. Stream流里的Optional对象
        List<User> userList = new ArrayList<>();

        userList.add(new User(3));
        userList.add(new User(5));
        userList.stream()
                .mapToInt(user -> user.age)
                .max()
                .getAsInt();


        List<String> stringList = Arrays.asList("1", "2", "3");
        System.out.println(stringList.stream()
                .map(Integer::parseInt).max(Integer::compareTo).get());
        int[] ints = stringList.stream()
                .mapToInt(Integer::parseInt)
                .toArray();
        long[] longs = stringList.stream()
                .mapToLong(Long::parseLong)
                .toArray();
        double[] doubles = stringList.stream()
                .mapToDouble(num -> Double.parseDouble(num))
                .toArray();

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值