延迟初始化
- lateinit :用于var变量,避免变量没有初始化导致编译报错,应该在合适的时候对其初始化
- by lazy:用于val变量,也就是final变量,初始化之后不可修改,会在第一次被引用的时候进行初始化 { }
单例
静态变量、静态函数
- 整个类就是静态类:
object A {
...
}
- 普通类中的静态模块:
class A {
companion object { ... }
}
实例化接口、抽象类
- 正常实现或继承之后引用
class A : P {
...
}
然后直接使用A()(不需要new关键字)
- 匿名内部类
test.setCallback(object : P {
...
})
第一次写的时候一直报错,这个object 是关键字,不是命名,不能修改。。。
- 实现接口的时候是不需要(),继承抽象类有()
interface A
abstract class B
class C : A { ... }
class C : B() { ... }
还是第一次尝试写kotlin项目,也不知道有些点理解的对不对
Meizikt
- Gank.io Android客户端 使用Kotlin + Retrofit2 + Rx