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();...
有沒有處理這些表達(dá)式通過某種方法 一個(gè) 功能 ,將返回一些默認(rèn)值(或空)如果一個(gè)參數(shù)是無效的,并拋出一個(gè)異常-這可能發(fā)生,如果,例如:
instance.getFinalDocument().getValue().getDate() = null
這樣我就不需要用try-catch塊包圍每個(gè)表達(dá)式或檢查每個(gè)點(diǎn)是否為null。
相關(guān)文章:
1. javascript - JS如何取對(duì)稱范圍的隨機(jī)數(shù)?2. java - ehcache緩存用的是虛擬機(jī)內(nèi)存么?3. 數(shù)據(jù)庫 - mysql如何處理數(shù)據(jù)變化中的事務(wù)?4. android - java 泛型不支持?jǐn)?shù)組,那么RxJava的Map集合有什么方便的手段可以定義獲得一串共同父類集合數(shù)據(jù)呢?5. java - mongodb分片集群下,count和聚合統(tǒng)計(jì)問題6. 關(guān)于docker下的nginx壓力測試7. 服務(wù)器端 - 采用nginx做web服務(wù)器,C++開發(fā)應(yīng)用程序 出現(xiàn)拒絕連接請(qǐng)求?8. javascript - 有什么兼容性比較好的辦法來判斷瀏覽器窗口的類型?9. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下10. python - pandas按照列A和列B分組,將列C求平均數(shù),怎樣才能生成一個(gè)列A,B,C的dataframe
