Google 再見 Java
去年 5 月份的 Google I/O 上,谷歌宣布 Kotlin-first,Kotlin 開始成為 Android 開發(fā)者的首選語言,接著谷歌針對(duì) Kotlin 的相關(guān)建設(shè)不斷。
本文簡(jiǎn)介?Java 遷移到 Kotlin?指南相關(guān)
就在今年,上周,谷歌剛剛推出免費(fèi)的 Kotlin 和 Android 在線課程,教開發(fā)者使用 Kotlin 構(gòu)建 Android 應(yīng)用。很快,Google Home 團(tuán)隊(duì)也現(xiàn)身說法,通過自身經(jīng)歷,展示了 Kotlin 開發(fā)的好處。
開始從 Java 遷移到 Kotlin
谷歌建議“由點(diǎn)及面”進(jìn)行遷移,包括人與代碼兩個(gè)層面:
人的層面,團(tuán)隊(duì)內(nèi)部推舉出一位 Kotlin “推廣大使”,他需要做到:
了解 Kotlin 并成為專家
制定 Kotlin 開發(fā)流程
參與代碼審核,確保 Kotlin 開發(fā)流程得到順利貫徹
組建公司/團(tuán)隊(duì)內(nèi)部的學(xué)習(xí)小組
主動(dòng)收集內(nèi)部的問題并與開發(fā)者社區(qū)反饋探討
而代碼層面,需要做到:
先使用 Kotlin 編寫測(cè)試(此時(shí)項(xiàng)目依然在使用 Java)
使用 Kotlin 編寫新代碼
將現(xiàn)有代碼更新為 Kotlin 代碼
在將現(xiàn)有代碼更新為 Kotlin 代碼時(shí),可以直接使用 Android Studio 提供的 Java 轉(zhuǎn) Kotlin 工具,只需要在菜單中選擇 “Code → Convert Java File to Kotlin File” 即可:

Java 轉(zhuǎn) Kotlin 工具
另外,Kotlin 的遷移工作沒必要一蹴而就,開發(fā)者可以按照自己的進(jìn)度來逐步進(jìn)行遷移。一個(gè)項(xiàng)目中可以同時(shí)包含 .java 和 .kt 文件,但同一個(gè)文件中不可以既有 Java 也有 Kotlin,開發(fā)者也可以在 Kotlin 代碼中使用任何 Java 庫。

△ Android Studio 的 Lint 檢查中也可以打開 Kotlin 互操作檢查
在 Kotlin 中調(diào)用 Java 時(shí),有幾點(diǎn)需要注意
1、將代碼標(biāo)記為 @Nullable 和 @NotNull
2、使用屬性前綴(getName(), setName(), isActive())
3、避免使用 Kotlin 中的保留關(guān)鍵字(when、is 等)
最后,谷歌工程師怎么看
作為一門 JVM 語言,一門兼容甚至被認(rèn)為要取代 Java 的語言,Kotlin 的出場(chǎng)也往往伴隨著與 Java 的比較。谷歌甚至推出了從 Java 遷移到 Kotlin 的官方指南。部分 Android 開發(fā)者仍在猶豫是否要轉(zhuǎn)到 Kotlin,有一些人已經(jīng)從 Java 遷移到 Kotlin 又遷回了 Java。在一年前 Dice 網(wǎng)站發(fā)布的調(diào)查中,85% 的受訪者幾乎一邊倒地選擇仍舊使用 Java 來構(gòu)建 Android 應(yīng)用程序。
但其實(shí)在谷歌工程師看來,并沒有必要將二者完全劃清界限。Android Studio 技術(shù)負(fù)責(zé)人 Jeffrey van Gogh 就曾講過,Java 與 Kotlin 具有極高的互操作性,所以兩者完全可以共存于同一個(gè)項(xiàng)目中。目前如 Google Home 這樣的谷歌自家應(yīng)用,不少都采用這種融合式做法,Kotlin 更多地被用來編寫新功能。
那么,再回到 “Kotlin 還是 Java” 這個(gè)也許已經(jīng)令 Android 開發(fā)者感到厭煩的問題上,定論顯然并不存在,關(guān)鍵是選擇最適合的方式。
內(nèi)容取材整編轉(zhuǎn)自:OSCHINA 社區(qū)
oschina.net/news/111189/migrating-from-java-to-kotlin
oschina.net/news/117389/google-home-benefits-from-using-kotlin
完
帥地搞了個(gè)小號(hào),我會(huì)在這個(gè)公眾號(hào)分享讀者問過我的問題,并且給予最真實(shí)的回答,同時(shí)也會(huì)分享自己學(xué)習(xí)方法、掙錢經(jīng)歷、工作經(jīng)歷、個(gè)人經(jīng)歷、沙雕日常,我相信,我的經(jīng)歷與想法,一定可以給你帶來一些幫助!掃一掃進(jìn)入帥地的私密沙雕小號(hào)
