Java。具有可能拋出參數(shù)的函數(shù)(NullpointerException)?
用途Optional.map:
instanceObj.final_doc_type = Optional.ofNullable(instance) .map(Instance::getFinalDocument) .map(Document::getValue) .map(Value::getType) .map(Type::getValue) .orElse(null);
這設(shè)置final_doc_type為null鏈中是否有任何東西null。
如果只想在非空值的情況下設(shè)置其值,請(qǐng)刪除分配,并將其更改orElse為ifPresent:
Optional.ofNullable(instance) /* ... */ .ifPresent(t -> instanceObj.final_doc_type = t);解決方法
當(dāng)我有許多可以引發(fā)異常的表達(dá)式時(shí),例如:
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();...
有沒(méi)有處理這些表達(dá)式通過(guò)某種方法 一個(gè) 功能 ,將返回一些默認(rèn)值(或空)如果一個(gè)參數(shù)是無(wú)效的,并拋出一個(gè)異常-這可能發(fā)生,如果,例如:
instance.getFinalDocument().getValue().getDate() = null
這樣我就不需要用try-catch塊包圍每個(gè)表達(dá)式或檢查每個(gè)點(diǎn)是否為null。
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題2. html5 - javascript讀取自定義屬性的值,有的能夠取到,有的取不到怎么回事??3. html - Python2 BeautifulSoup 提取網(wǎng)頁(yè)中的表格數(shù)據(jù)及連接4. python - PyCharm里的一個(gè)文件不小心忽略了wx包5. android - VideoView與百度Map沖突6. python - (2006, ’MySQL server has gone away’)7. 小白學(xué)python的問(wèn)題 關(guān)于%d和%s的區(qū)別8. python - 使用eclipse運(yùn)行django代碼,修改了views.py這個(gè)文件,但是瀏覽器顯示的還是原有沒(méi)修改的結(jié)果,怎么處理?9. django - pycharm 如何配置 python3 的開(kāi)發(fā)環(huán)境?10. win10 Apache24+PHP8.0,Apache不能正常加載php.ini。
