Kotlin配置及淺用(一)

對(duì)于近兩年Android開(kāi)發(fā)中出現(xiàn)的一些新技術(shù)比如RxJava、React Native、Retrofit、HotFix等,在實(shí)際開(kāi)發(fā)中已經(jīng)使用的比較普遍,就個(gè)人而言,這些接觸的也不算少了,但Kotlin并沒(méi)有在實(shí)際開(kāi)發(fā)中使用過(guò),就自己練著玩了一下,大神繞過(guò)~

一 、簡(jiǎn)介

Kotlin 是一個(gè)基于 JVM 的新的編程語(yǔ)言,由JetBrains開(kāi)發(fā)。JetBrains,作為目前廣受歡迎的 Java IDE IntelliJ 的提供商,在 Apache 許可下已經(jīng)開(kāi)源其Kotlin 編程語(yǔ)言。

Kotlin可以理解為類(lèi)似于iOS的Swift。其主要特性就是:

1.輕量級(jí):Android對(duì)于方法數(shù)量有嚴(yán)格的限制,Kotlin只額外增加了大約6000個(gè)方法。

2.互操作:Kotlin可與Java語(yǔ)言無(wú)縫通信。這意味著我們可以在Kotlin代碼中使用任何已有的Java庫(kù);因此,即便這門(mén)語(yǔ)言還很年輕,但卻已經(jīng)可以使用成百上千的庫(kù)了。除此之外,Kotlin代碼還可以為Java代碼所用,這意味著我們可以使用這兩種語(yǔ)言來(lái)構(gòu)建軟件。你可以使用 Kotlin開(kāi)發(fā)新特性,同時(shí)使用Java實(shí)現(xiàn)代碼基的其他部分。

3.強(qiáng)類(lèi)型:我們很少需要在代碼中指定類(lèi)型,因?yàn)榫幾g器可以在絕大多數(shù)情況下推斷出變量或是函數(shù)返回值的類(lèi)型。這樣就能獲得兩個(gè)好處:簡(jiǎn)潔與安全。

4.Null安全:Java最常見(jiàn)的一個(gè)問(wèn)題就是null。如果沒(méi)有對(duì)變量或是參數(shù)進(jìn)行null判斷,那么程序當(dāng)中就有可能拋出大量的 NullPointerException,然而在編碼時(shí)這些又是難以檢測(cè)到的。Kotlin使用了顯式的null,這會(huì)強(qiáng)制我們?cè)诒匾獣r(shí)進(jìn)行null檢查

Kotlin官網(wǎng)

http://kotlinlang.org

l Kotlin-github地址

github.com/JetBrains/kotlin

二 、Android Studio配置

1.下載插件

Settings -> plugins -> BrowseRepositories中搜索“Kotlin”,然后安裝Kotlin和Kotlin Extension。


效果圖

2.使用Kotlin創(chuàng)建Kotlin File/Class或者是Kotlin Activity

重啟Android Studio后,在任意一個(gè)包下右鍵New , 會(huì)發(fā)現(xiàn)多了一個(gè)"Kotlin File/Class" 和 "Kotlin Activity"。"Kotlin File/Class"即 Kotlin類(lèi)或者文件"Kotlin Activity"即 Kotlin的Activity類(lèi)。

效果圖

3.第一次創(chuàng)建Kotlin類(lèi)后會(huì)彈出配置彈窗,點(diǎn)擊進(jìn)入配置頁(yè)面。

4.最后會(huì)進(jìn)入到build.gradle文件下。你會(huì)發(fā)現(xiàn)app下的build.gradle和根目錄下的build.gradle文件都會(huì)出現(xiàn)變化。

buildscript {

ext.kotlin_version = '1.1.2-4'

ext.support_version = '23.1.1'

ext.anko_version = '0.8.2'

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.1.0'

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

allprojects {

repositories {

jcenter()

}

}

task clean(type: Delete) {

delete rootProject.buildDir

}

app目錄下的build.gradle:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {

...

}

lintOptions {

abortOnError false

}

buildTypes {

debug {

...

}

release {

...

}

}

sourceSets {

main.java.srcDirs += 'src/main/kotlin'

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:25.3.1'

compile 'com.android.support:design:25.3.1'

compile 'com.android.support:support-v4:25.3.1'

compile 'com.github.bumptech.glide:glide:3.6.1'

compile 'com.jph.takephoto:takephoto_library:4.0.3'

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

compile "org.jetbrains.anko:anko-common:$anko_version"

}

repositories {

mavenCentral()

}


三 、基本使用示例

就先對(duì)比一下java文件與kotlin類(lèi)文件(以一個(gè)bean文件示例)

java文件:

public class Person {

private String name;? //姓名

private int age;? ? ? //年齡

private int sex;? ? //性別? 1、男? ? 2、女

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public int getSex() {

return sex;

}

public void setSex(int sex) {

this.sex = sex;

}

@Override

public String toString() {

return "Person{" +

"name='" + name + '\'' +

", age=" + age +

", sex=" + sex +

'}';

}

}

對(duì)應(yīng)的Kotlin文件:

class Person {

var name: String? = null? //姓名

var age: Int = 0? ? ? //年齡

var sex: Int = 0? ? //性別? 1、男? ? 2、女

override fun toString(): String {

return "Person{" +

"name='" + name + '\'' +

", age=" + age +

", sex=" + sex +

'}'

}

}

具體的關(guān)于Kotlin基本數(shù)據(jù)類(lèi)型、語(yǔ)法格式及使用,會(huì)在接下來(lái)的文章中示例,謝謝!

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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