Kotlin 的設(shè)計過程中就考慮到了與 Java 的互操作性磺樱。在 Kotlin 中可以直接調(diào)用既有的 Java 代
碼, 反過來在 Java 中也可以很流暢地使用 Kotlin 代碼皂甘。
Kotlin 調(diào)用 Java
大多數(shù)Java代碼淋袖,可以直接調(diào)用
import java.util.*
fun demo() {
val list = ArrayList<string>()
list.add("hello world")
}
符合 Java 的 Get 和 Set 方法規(guī)約的方法, 在 Kotlin 中會被識別為屬性;
返回值為 void 的方法, 在 Kotlin 中調(diào)用時將返回 Unit ;
某些 Kotlin 關(guān)鍵字在 Java 中是合法的標識符: in, object, is, 等等, 只要使用反引號(`)對方法名轉(zhuǎn)義即可。
foo.`is`(bar)
Java 調(diào)用 Kotlin
包級函數(shù)和屬性嘁酿,如com.hello.test的Example.kt,會放在com.hello.test.ExampleKt的Java類內(nèi)男应。 編譯生成的 Java 類的名稱, 可以通過 @JvmName 注解來改變闹司。
屬性的取值方法(getter)會被轉(zhuǎn)換為 get 方法, 設(shè)值方法(setter)會被轉(zhuǎn)換為 set 方法。@JvmField 可以將屬性公開為 Java 中的一個域殉了。
@JvmStatic 注解, Kotlin 也可以為命名對象或同伴對象中定義的函數(shù)生成靜態(tài)方法开仰。
參考*
《Programming Kotlin》Stephen Samuel 拟枚,Stefan Bocutiu
《Kotlin in Action》Dmitry Jemerov薪铜,Svetlana Isakova