Optional.of()报错NullPointerException

Optional 类主要解决的问题是臭名昭著的空指针异常;
好家伙,那就赶紧用起来吧,在项目中使用到Optional.of 判断Dao查询的数据,发现使用Optional反而报错了,查看源码,竟然用错了。

Optional.of

  		/**
  		 *	摘自源码注释:可以看到入参为null会抛出异常
         * Returns an {@code Optional} with the specified present non-null value.
         *
         * @param <T> the class of the value
         * @param value the value to be present, which must be non-null
         * @return an {@code Optional} with the value present
         * @throws NullPointerException if value is null
         */
        Optional<Object> of = Optional.of(null);
        if(of.isPresent()){
            System.out.println(of.get());
        }

Optional.ofNullable

 /**
         * 摘自源码注释:可以看到入参为null会新建实例。
         * Returns an {@code Optional} describing the specified value, if non-null,
         * otherwise returns an empty {@code Optional}.
         *
         * @param <T> the class of the value
         * @param value the possibly-null value to describe
         * @return an {@code Optional} with a present value if the specified value
         * is non-null, otherwise an empty {@code Optional}
         */
        Optional<Object> o = Optional.ofNullable(null);//.orElse("1")
        if(o.isPresent()){
            System.out.println(o.get());
        }

两者最大区别在于对入参为Null时的处理,所以当入参存在为Null的情况下,使用Optional.ofNullable

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值