從Java到Kotlin(一)

陳子豪發表於2018-02-04

目錄

1.什麼是Kotlin
2.為什麼要選擇Kotlin
3.如何使用Kotlin來開發Android
4.與Java的互操作性


1.什麼是Kotlin

谷歌在2017年中舉行的I/O開發者大會上宣佈,將Kotlin語言作為安卓開發的一級程式語言。Kotlin由JetBrains公司開發,與Java 100%互通,並具備諸多Java尚不支援的新特性。JetBrains在2010年首次推出Kotlin程式語言,並在次年將之開源。Android Studio3.0後的版本會提供對Kotlin的支援。


2.為什麼要選擇Kotlin

從Java到Kotlin(一)
上圖來自Kotlin的官網,列舉了4個詞:

  • 簡潔 舉個例子,在AndroidStudio裡分別用Kotlin和Java建立下圖的模板
    從Java到Kotlin(一)
    從Java到Kotlin(一)
    可以看到,Kotlin一共用了84行,而Java用了101行。由此可得,Kotlin比Java程式碼量更少,更簡潔。 如果這個例子不夠說服力的話,再舉一個。 在開發中我們經常用到的實體類,用Java寫的話是這樣的
class User {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void getName() {
        return name;
    }
}
複製程式碼

而用Kotlin寫是這樣的

data class User(var name: String)
複製程式碼

沒錯就是這麼簡單!

  • 安全 Kotlin是空安全的,在編譯時期就處理了可能會產生空指標的情況,避免了執行程式碼時出現空指標異常。舉個例子: 如果用Java中定義一個String可以這樣寫
String str;//預設為null
複製程式碼

如果我們沒有給這個str賦值時,可能在其他操作中出現空指標異常。 如果用Kotlin這樣定義一個String,結果如下圖

從Java到Kotlin(一)
編譯不通過,除非我們這樣寫

var str: String? = null//如果str為空,則等於null
複製程式碼

這樣編譯才能通過。雖然都為null,但是Kotlin會檢查一遍可能產生空指標的地方,能夠排除大量的空指標異常。

  • 互操作性 Kotlin與 Java100% 可互操作,Kotlin的專案可以使用所有的用Java寫的程式碼和庫,也可以在一個專案中使用Kotlin和Java兩種語言混合程式設計。

  • 工具有好 Kotlin和AndroidStudio都是出自JetBrains,工具自然少不了對語言的支援。


3.如何使用Kotlin來開發Android

  • 如果你的AndroidStudio版本是3.0之前:

(1).通過 File | Settings | Plugins | Install JetBrains plugin… 搜尋並安裝 Kotlin 外掛。

從Java到Kotlin(一)

(2).在根目錄的build.gradle中加入

buildscript {
    ext.kotlin_version = '1.2.10'

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
複製程式碼

(3).在app/build.gradle中引入

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

buildscript {
    ext.kotlin_version = '1.2.10'

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
複製程式碼

完成上面3步即可開始Kotlin之旅

  • 如果你的AndroidStudio版本是3.0之後: (1).內建安裝 Kotlin 外掛 (2).新建專案,自動引入Kotlin所需的依賴 (3).如果是用AndroidStudio3.0開啟之前的專案,參照上面2.3兩點

4.與Java的互操作性

  • 安裝完Kotlin的外掛後,可以新建Kotlin File/Class
    從Java到Kotlin(一)
  • Kotlin 在設計時就考慮了 Java 互操作性。可以從 Kotlin 中自然地呼叫現存的 Java 程式碼,並且在 Java 程式碼中也可以很順利地呼叫 Kotlin 程式碼。
  • Java程式碼複製到Kotlin Class裡可以轉換為Kotlin程式碼
    從Java到Kotlin(一)
  • Kotlin 外掛自帶了一個 Java 到 Kotlin 的轉換工具,可以把所有Java程式碼轉換成Kotlin程式碼,轉換工具在Code選單裡面的Convert Java File to Kotlin File選項
    從Java到Kotlin(一)

總結

谷歌在2017年中舉行的I/O開發者大會上宣佈,將Kotlin語言作為安卓開發的一級程式語言。在Android開發中,必將會有越來越多人使用Kotlin來開發。本篇文章標題為《從Java到Kotlin(一)》,後續還有幾篇文章作為一個系列,目的是讓熟悉Java的人看完後可以馬上使用Kotlin進行開發。 本篇文章是本系列文章的第一篇,主要簡述了 什麼是Kotlin為什麼要用Kotlin ,Kotlin能寫出更簡潔的程式碼,而且Kotlin是空安全的,能杜絕大部分空指標異常。

參考文獻:
Kotlin語言中文站、《Kotlin程式開發入門精要》
推薦閱讀:
從Java到Kotlin(一)為什麼使用Kotlin
從Java到Kotlin(二)基本語法
從Java到Kotlin(三)類和介面
從Java到Kotlin(四)物件與泛型
從Java到Kotlin(五)函式與Lambda表示式
從Java到Kotlin(六)擴充套件與委託
從Java到Kotlin(七)反射和註解
從Java到Kotlin(八)Kotlin的其他技術
Kotlin學習資料總彙


更多精彩文章請掃描下方二維碼關注微信公眾號"AndroidCzh":這裡將長期為您分享原創文章、Android開發經驗等! QQ交流群: 705929135

從Java到Kotlin(一)

相關文章