1.Java调用Kotlin
如果在Java代码里面调用了Kotlin的代码,编译的时候报类似下面的错误 找不到包或者类那么,很可能是这个包对应Module的build.gradle文件没有配置 applyplugin:'kotlin-android',加上即可
apply plugin: 'kotlin-android'
拓展:其他插件
kotlin-android-extensions
kotlin-android-extensions 是用来替代findViewById的插件,假设有一个布局文件 activity_main,那么在Activity类里面,只需要把布局文件import进去即可,import之后直接根据控件的id即可进行UI操作,如下:
//1
apply plugin: 'kotlin-android-extensions'
//2
import kotlinx.android.synthetic.main.activity_main.*
//3
textView.setText("hello world")
kotlin-kapt
如果你的Kotlin代码里面有使用到注解,那么需要加入这个插件(kapt 即 Kotlin annotation processing tool,Kotlin 注解处理工具的缩写)
apply plugin: 'kotlin-kapt'
2.Kotlin避免空指针
Kotlin提供了!!和?操作符来协助规避空指针异常的问题
网上找到关于!!的解释:表示当前对象不为空的情况下执行
这个介绍是错误的!错误的!错误的!
实际上,!!是表示当前这个地方可能存在 kotlin.KotlinNullPointerException 的风险,你需要谨慎处理,并不会因为对象为空就不执行这行代码
如何正确避免空指针:
使用"?",如下:
var abc: Int? = null
abc?.let {
//只有abc不为null才会执行这里面的代码
//do anything what u want
}
Kotlin的成员变量无法被Java子类使用的问题
你可能会碰到这样的问题: 父类定义一个变量 说这个变量是私有的(英文不好,大概这么个意思吧)解决方法
abstract class Test{
@JvmField
protected var TAG: String
}
待续
网友评论