kotlin边学习,边实战到项目中——必须记住的
常见符号的意思
?. 表示当前对象可以为空
!!. 表示当前对象在不为空的情况下执行
"?"加在变量名后,系统在任何情况不会报它的空指针异常。
"!!"加在变量名后,如果对象为null,那么系统一定会报异常!
?: 主要是做if判断的时候用,比如 a?:b 代表,如果a不为空的情况返回a,如果为空则返回b
as? 主要在类型转化的时候用,比如 a as? String 如果a是String类型的,就转化成这个的类型,不是的话则返回null
在回想下!!.是不是也是这样的,他直接抛异常
kotlin 四种修饰private,protected,internal,public
默认的修饰词是public。这些修饰词可以用在类,对象,接口,构造函数,属性以及属性的set()中。
//private 只有在源文件中可见就是
//protected 该属性能被子类访问
// internal 在同一模块中的任何地方可见
//public 公共的,任何地方是可见的
kotlin中String和Int的互相转化
Int转String使用:变量.toString()
String转Int使用:变量.toInt()
Android Studio中Java和Kotlin相互转换
Java转Kotlin
打开要转的文件
- 方法1:Ctrl+Shift+Alt+K
- 方法2:Code - Convert Java File To Kotlin File
这两种方法生成的代码往往不是最简洁的,有的时候还报错,需要根据实际情况进行修改
Kotlikn 转 Java
Tools>Kotlin>Show Kotlin Bytecode
然后点击Decompile,就会出现新的文件,复制代码即可,同时这里的代码往往需要重新修改才能使用
kotlin中const和val的区别
const必须修饰val,const只允许top-level级别和object中声明
从字节码可以看出来是
- const val 可见性为public final static,可以直接访问。
- val 可见性为private final static,并且val 会生成方法getNormalObject(),通过方法调用访问。
最后:当定义常量时,出于效率考虑,我们应该使用const val方式,避免频繁函数调用。