kotlin学习 - Jave 与 Kotlin 注意事项
java中使用kotlin的顶层方法
1 | //Test.kt |
1 | //Test.java |
java中使用kotlin的方法 ( 自定义 kt 文件类名 )
1 | //Test.kt |
1 |
|
java文件 kotlin文件 中的 class 使用
1 | fun main() { |
Kotlin 没有静态变量与 静态方法
1 | //TestDemoKotlin.kt |
1 | //TestDemoJave.java |
函数嵌套
用途 : 在某些条件下触发递归的函数,不希望被外部函数访问到的函数
1 | fun function() { |
在Java中使用Kotlin中的扩展函数
1 | //TestDemoKotlin.kt |
1 | //TestDemoJave.java |
lambda 在 kotlin 中 最多只支持22个参数(Function22)
1 | * Function23.java |
1 |
|
inline 将内联函数的函数体复制到调用处实现内联 ( 内联可能导致生成的代码增加 )
1 | inline fun <T> lock(lock: Lock, body: () -> T): T { …… } |
noinline 标记不希望内联的函数参数
1 | inline fun foo(inlined: () -> Unit, noinline notInlined: () -> Unit) { …… } |
Kotlin 可见性修饰符
修饰符 | 同类 | 同模块 | 子类 | 其他 |
---|---|---|---|---|
public(公开,默认) | √ | √ | √ | √ |
internal(模块) | √ | √ | - | - |
protected(受保护) | √ | - | √ | - |
private(私有) | √ | - | - | - |
Java 访问控制修饰符
修饰符 | 同类 | 同包 | 子类 | 不同包 |
---|---|---|---|---|
public(公开) | √ | √ | √ | √ |
protected(受保护) | √ | √ | √ | - |
没有修饰符(默认) | √ | √ | - | - |
private(私有) | √ | - | - | - |
单例 例子
1 | class Single private constructor() { |
kotlin 封闭类(枚举类)
1 | sealed class SuperCommand { |