关于optional的orElse和orElseGet、orElseThrow
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于optional的orElse和orElseGet、orElseThrow相关的知识,希望对你有一定的参考价值。
参考技术A如果 Optional 实例有值则将其返回,否则返回 orElse 方法传入的参数
orElseGet 与 orElse 方法类似,区别在于得到的默认值。 orElse 方法将传入的字符串作为默认值, orElseGet 方法可以接受 Supplier 的实现用来生成默认值
如果有值则将其返回,否则抛出 Supplier 接口创建的异常。
以下是自定义的 DemoException
总结
总的来说, orElse 与 orElseGet 方法差不多,两者都会返回定义的内容,前者是字符串,后者是实现了 Supplier 的内容;并且后者会在不允许值为空或 other 无效的情况抛 NullPointerException 异常
springboot datajpa 简明说明
findById返回Optional的使用
查询
public Object lookupDevice(Integer id) { return deviceJpa.findById(id).orElse(null); }
更新
public Object updateDevice(Integer id) { Optional<Device> optionalDevice = deviceJpa.findById(id); if (optionalDevice.isPresent()) { Device device=optionalDevice.get(); device.setSerial("HEHHEHEEH"); return deviceJpa.save(device); } return null; }
以上是关于关于optional的orElse和orElseGet、orElseThrow的主要内容,如果未能解决你的问题,请参考以下文章
Optional.ofNullable(参数1).orElse(参数2)