最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

DEVLOG 11.29 近期收集的一些問題(一)Kotlin相關(guān)

2021-12-03 20:14 作者:房頂上的鋁皮水塔  | 我要投稿

Q1: 如何理解Kotlin中的getter和setter ?

A1: getter和setter我們通常這樣使用:

其中field只能在setter中使用,表示當(dāng)前的字段的值。

具體轉(zhuǎn)換成字節(jié)碼是這樣的:

所以,如果我們給Kotlin中的一個變量定義了get和set方法的話,我們在獲取這個變量的內(nèi)容的時候,在Java層面,回去調(diào)用編譯器實現(xiàn)的一個getA方法,并且返回結(jié)果。

而使用set的時候會去調(diào)用setA,雖然實實在在的改變了a的值,但是因為我們寫了get,所以還是會返回getA的結(jié)果。


對于定義的一個普通的變量a,編譯器也會給他定義get和set和Java POJO中我們手寫的差不多:

Q2:延遲初始化lateinit var是如何實現(xiàn)的?

A2: 我們通常采用延遲初始化的方式對于一個我們不確定在何時初始化比較方便時的變量進行初始化。如果這個變量沒有被初始化,就會拋出異常:

第二個println會拋出異常。

具體的實現(xiàn)是通過在getter中定義檢查的語句,如果在獲取這個變量的值時為空,拋出異常:


DEVLOG 11.29 近期收集的一些問題(一)Kotlin相關(guān)的評論 (共 條)

分享到微博請遵守國家法律
阿鲁科尔沁旗| 大庆市| 共和县| 慈利县| 都江堰市| 新余市| 昔阳县| 民和| 砚山县| 龙川县| 莱阳市| 柏乡县| 星座| 城口县| 怀宁县| 科尔| 镇平县| 凤城市| 奎屯市| 汝城县| 西青区| 合川市| 乌拉特中旗| 垣曲县| 凤翔县| 扶余县| 阿坝县| 西乌| 无棣县| 正宁县| 茌平县| 西乡县| 中阳县| 汝城县| 新兴县| 临夏市| 锡林郭勒盟| 池州市| 岳阳市| 瑞丽市| 福海县|