Kotlin 和 Java 相互調(diào)用

Kotlin 的設(shè)計(jì)過(guò)程中就考慮到了與 Java 的互操作性。在 Kotlin 中可以直接調(diào)用既有的 Java 代
碼, 反過(guò)來(lái)在 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 中會(huì)被識(shí)別為屬性;
返回值為 void 的方法, 在 Kotlin 中調(diào)用時(shí)將返回 Unit ;
某些 Kotlin 關(guān)鍵字在 Java 中是合法的標(biāo)識(shí)符: in, object, is, 等等, 只要使用反引號(hào)(`)對(duì)方法名轉(zhuǎn)義即可。

foo.`is`(bar)

Java 調(diào)用 Kotlin

包級(jí)函數(shù)和屬性,如com.hello.test的Example.kt,會(huì)放在com.hello.test.ExampleKt的Java類內(nèi)。 編譯生成的 Java 類的名稱, 可以通過(guò) @JvmName 注解來(lái)改變。

屬性的取值方法(getter)會(huì)被轉(zhuǎn)換為 get 方法, 設(shè)值方法(setter)會(huì)被轉(zhuǎn)換為 set 方法。@JvmField 可以將屬性公開為 Java 中的一個(gè)域。

@JvmStatic 注解, Kotlin 也可以為命名對(duì)象或同伴對(duì)象中定義的函數(shù)生成靜態(tài)方法。


參考*
《Programming Kotlin》Stephen Samuel ,Stefan Bocutiu
《Kotlin in Action》Dmitry Jemerov,Svetlana Isakova

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 人生苦多,快來(lái) Kotlin ,快速學(xué)習(xí)Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,692評(píng)論 9 118
  • Kotlin is 100% interoperable with Java? and Android? 在前面的...
    JackChen1024閱讀 6,603評(píng)論 1 15
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,562評(píng)論 19 139
  • 最近我一直煩惱困惑,沒(méi)有時(shí)間和靈感來(lái)寫作,覺(jué)得每天過(guò)的渾渾噩噩,猶如豬豬俠一樣,不豬豬俠還能拯救同伴,而我只是睡了...
    南街舊巷故事依舊細(xì)膩閱讀 1,591評(píng)論 4 7
  • 當(dāng)我抬頭的時(shí)候 我希望望見你的笑臉 望見草綠 在潔凈的紙板上涂鴉 望見天空 流下幸福的眼淚 望見屋檐上 有暖陽(yáng)的心...
    孫滸胡閱讀 391評(píng)論 0 1

友情鏈接更多精彩內(nèi)容