免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ABAP和Java里關(guān)于DEFAULT(默認(rèn))機(jī)制的一些語(yǔ)言特性
ABAP 740的新語(yǔ)法:
上圖的代碼相當(dāng)于:
DATA: ls_data LIKE LINE OF it_data.READ TABLE it_data INTO ls_data WITH KEY object_ext = cl_crm_prodil_bo_names=>gc_prod_root.CALL METHOD add_data EXPORTING ir_child_object = ir_root_object is_data = ls_data.由此可見新語(yǔ)法比較簡(jiǎn)潔,能少寫3行代碼。但是這樣有一個(gè)缺陷,在新語(yǔ)法下如果it_data內(nèi)表內(nèi)不存在object_ext的值為cl_crm_prodil_bo_names=>gc_prod_root的記錄,就會(huì)終止程序執(zhí)行,拋出異常CX_SY_ITAB_LINE_NOT_FOUND.
針對(duì)這種情況,ABAP也有對(duì)應(yīng)的解決方案。
下圖的第17行會(huì)拋出異常,而19行不會(huì),從語(yǔ)義上容易理解:如果內(nèi)表lt_data里不存在name為Spring2的記錄,則返回開發(fā)者使用DEFAULT關(guān)鍵字指定的一個(gè)結(jié)構(gòu)作為默認(rèn)值。
在Java 8也有類似機(jī)制。為了避免臭名昭著的NullPointerException,Java開發(fā)人員在使用對(duì)象的實(shí)例方法之前,需要檢查對(duì)象實(shí)例是否不為null:
if( xx != null ){ xx.doSomething();}在Java 8里,在包java.util里提供了一個(gè)新的工具類Optional,看看它的用法。
第11行的filter方法,語(yǔ)義上應(yīng)該返回一個(gè)null,因?yàn)槲以诘?0行初始化的字符串常量的長(zhǎng)度顯然大于6. 但是調(diào)用這個(gè)filter方法的對(duì)象是一個(gè)Optional對(duì)象,所以最終filter方法最終也返回一個(gè)Optional對(duì)象,這個(gè)對(duì)象包裹了一個(gè)null。如下圖調(diào)試器里所示:
第14行執(zhí)行的結(jié)果會(huì)打印出orElse里指定的值,此處orElse的思路和上述介紹的ABAP里的DEFAULT關(guān)鍵字是一致的。
這個(gè)Optional工具類的實(shí)現(xiàn)也很簡(jiǎn)易,orElse僅僅是一個(gè)三元表達(dá)式。
要查看更多ABAP和Java,JavaScript的語(yǔ)言特性比較,請(qǐng)關(guān)注Jerry的公眾號(hào):汪子熙。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java 8新特性探究(四)類型注解 復(fù)雜還是便捷
Optional 是個(gè)好東西,你真的會(huì)用么?
理解、學(xué)習(xí)與使用 Java 中的 Optional
Java Optional的使用實(shí)踐概述
使用 Java 8 Optional 的正確姿勢(shì)
Java8 Optional機(jī)制的正確使用方式
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服