JAVA函数可能具有可丢弃的参数(NullpointerException)?

JAVA函数可能具有可丢弃的参数(NullpointerException)?,java,exception,nullpointerexception,Java,Exception,Nullpointerexception,当我有许多表达式可以引发异常时,例如: instanceObj.final_doc_type = instance.getFinalDocument().getValue().getType().getValue(); instanceObj.final_doc_date = instance.getFinalDocument().getValue().getDate().toGregorianCalendar().getTime(); instanceObj.appeal_date = ins

当我有许多表达式可以引发异常时,例如:

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 
是否有任何方法可以通过某个函数处理这些表达式,如果某个参数无效并引发异常,该函数将返回一些默认值(或null)-例如,如果:

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。

使用:

如果链中有任何内容为
null
,则将
final\u doc\u type
设置为
null

如果只想在非空值的情况下设置其值,请删除赋值,并将
orElse
更改为
ifPresent

Optional.ofNullable(instance)
    /* ... */
    .ifPresent(t -> instanceObj.final_doc_type = t);
Optional.fromNullable(instance).map(instance::getFinalDocument).map(Document::getValue)
etc.可能重复的