麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > 綜合 > 正文

android代碼轉(zhuǎn)換成Kotlin時,未初始化變量報錯

2024-07-21 23:03:38
字體:
供稿:網(wǎng)友

android 代碼轉(zhuǎn)換成Kotlin代碼時,有些在Android中定義的未初始化變量,會在轉(zhuǎn)成Kotlin代碼時報Property must be initialized or be abstract錯誤。這是由于Kotlin的語法規(guī)范所致,kotlin的變量一般需要在定義的時候就進(jìn)行賦值。如果非要定義時不賦值,就需要使用kotlin的lateinit修飾符修飾定義的變量,以指定其將在稍后賦值。但目前Android Studio 2.3自帶的Java代碼轉(zhuǎn)Kotlin代碼的功能,并沒有針對此種變量做處理,導(dǎo)致直接轉(zhuǎn)換會報錯。

方法/步驟

1、一般的activity是這樣的,定義個輸入框變量

android代碼,Kotlin,變量報錯

2、通過 Code→Convert Java File to Kotlin File 或者快捷鍵 Ctrl+Alt+Shift+K將Java代碼轉(zhuǎn)換成Kotlin代碼

android代碼,Kotlin,變量報錯

3、Java代碼成功轉(zhuǎn)換成了Kotlin代碼,但定義的輸入框變量卻報錯了。查看錯誤信息是

Property must be initialized or be abstract。

android代碼,Kotlin,變量報錯

4、也就是說Kotlin中定義的變量,要么是定義時就初始化,要么就定義成抽象的。但顯然這里不能定義成抽象的,那就試著直接初始化。

android代碼,Kotlin,變量報錯

5、初始化后,果然不再報錯。那就直接運行,卻發(fā)現(xiàn)App直接停止運行了。查看錯誤日志,

android代碼,Kotlin,變量報錯

6、很顯然,我在初始化控件時,Context還沒初始化,導(dǎo)致了空指針異常。說明定義控件時就初始化不能解決剛才Kotlin報的錯誤。

幾番查閱Kotlin語法、搜索資料后,才發(fā)現(xiàn),Kotlin有一個lateinit修飾符。字面意思就可以知道它是表名變量需要在定義后才賦值的。

使用 lateinit修飾后,就可以愉快地玩耍了。

android代碼,Kotlin,變量報錯

 

VeVb提示:

Android Studio 3.0后自帶Kotlin,無需安裝插件

經(jīng)驗基于Android Studio 2.3,3.0以后可能與此有出入


注:相關(guān)教程知識閱讀請移步到kotlin教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 香蕉久草在线 | 国产精品视频专区 | 国产理论视频在线观看 | 思思久而久而蕉人 | 鲁人人人鲁人人鲁精品 | 欧美黄色一级带 | 99成人精品视频 | va视频在线 | 国产精品久久久久免费视频 | 4480午夜| 午夜视频观看 | 巨根插入 | 黄色特级片黄色特级片 | 91精品国产乱码久久久久 | 精品亚洲夜色av98在线观看 | 蜜桃视频在线免费播放 | 精品一区二区视频在线观看 | 午夜精品老牛av一区二区三区 | 国产欧美一区二区三区免费看 | 国产成人高清在线观看 | 水卜樱一区二区av | 久久精精 | 午夜在线视频一区二区三区 | asian超清日本肉体pics | 久久千人斩 | 91成人免费看片 | 午夜精品视频免费观看 | 欧美一级片网站 | 免费一级a毛片免费观看 | 日本精品免费观看 | 成人毛片100免费观看 | 国产精品hd免费观看 | 亚州成人在线观看 | 精国产品一区二区三区四季综 | av在线试看 | 最新一级毛片 | 热久久成人| 四季久久免费一区二区三区四区 | 中国美女一级黄色大片 | 欧洲成人一区二区 | 99爱国产精品 |