Java。具有可能抛出参数的函数(NullpointerException)?
用途Optional.map:
instanceObj.final_doc_type = Optional.ofNullable(instance) .map(Instance::getFinalDocument) .map(Document::getValue) .map(Value::getType) .map(Type::getValue) .orElse(null);
这设置final_doc_type为null链中是否有任何东西null。
如果只想在非空值的情况下设置其值,请删除分配,并将其更改orElse为ifPresent:
Optional.ofNullable(instance) /* ... */ .ifPresent(t -> instanceObj.final_doc_type = t);解决方法
当我有许多可以引发异常的表达式时,例如:
instanceObj.final_doc_type = instance.getFinalDocument().getValue().getType().getValue();instanceObj.final_doc_date = instance.getFinalDocument().getValue().getDate().toGregorianCalendar().getTime();instanceObj.appeal_date = instance.getFinalDocument().getValue().getAppealDate().getValue().toGregorianCalendar().getTime();...instanceObj.start_doc_type = instance.getStartDocument().getValue().getDocType().getValue();instanceObj.apeealed_type = instance.getStartDocument().getValue().getApeealedType().getValue();instanceObj.declarers_list_mult_id = instance.getStartDocument().getValue().getDeclarers().getValue().getString();...
有没有处理这些表达式通过某种方法 一个 功能 ,将返回一些默认值(或空)如果一个参数是无效的,并抛出一个异常-这可能发生,如果,例如:
instance.getFinalDocument().getValue().getDate() = null
这样我就不需要用try-catch块包围每个表达式或检查每个点是否为null。
相关文章:
1. 为什么背景图无法正常显示2. 最新版的phpstudy的mysql版本只是5.5,有没有5.6或者5.7版本的集成版呀?3. javascript - await 后面的Promise对象的回调方法在哪里写4. node.js - vue express 前后端分离 登录验证 与 权限控制问题5. html - 谁能推荐一个类似apple官网的模板,用来展示产品的?6. javascript - jQuery中live事件在移动微信端下没有效果;代码如下7. 请求一个接口,如何获取执行到的mysql,8. css3 - css字体样式加填充色而不是背景色9. mysql优化 - mysql EXPLAIN之后怎么看结果进行优化 ?10. html5 - 新手提问:为什么form表单的post请求 路由处理不了