1、一般的activity是这样的,定义个输入框变量
2、通过 Code→Convert Java File to Kotlin File 或者快捷键 Ctrl+Alt+Shift+K将Java代码转换成Kotlin代码
3、Java代码成功转换成了Kotlin代码,但定义的输入丸泸尺鸢框变量却报错了。查看错误信息是Property must be initialized or be abstract。
4、也就是说Kotlin中定义的变量,要么是定义时就初始化,要么就定义成抽象的。但显然这里不能定义成抽象的,那就试着直接初始化。
5、初始化后,果然不再报错。那就直接运行,却发现App直接停止运行了。查看错误日志,
6、很显然,我在初始化控件时,Context还没初始化,导致了空指针异常。说明定义控件时就初始化不能解决刚才Kotlin报的错畚容尬檬误。几番查阅Kotlin语法、搜索资料后,才发现,Kotlin有一个lateinit修饰符。字面意思就可以知道它是表名变量需要在定义后才赋值的。使用 lateinit修饰后,就可以愉快地玩耍了。