Kotlin配置及淺用(一)

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

一 僵缺、簡(jiǎn)介

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

Kotlin可以理解為類似于iOS的Swift揉抵。其主要特性就是:

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

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

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

4.Null安全:Java最常見的一個(gè)問題就是null浅蚪。如果沒有對(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類或者文件"Kotlin Activity"即 Kotlin的Activity類。

效果圖

3.第一次創(chuàng)建Kotlin類后會(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類文件(以一個(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ù)類型、語(yǔ)法格式及使用轩猩,會(huì)在接下來的文章中示例卷扮,謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末均践,一起剝皮案震驚了整個(gè)濱河市晤锹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌彤委,老刑警劉巖鞭铆,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異焦影,居然都是意外死亡车遂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門斯辰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舶担,“玉大人,你說我怎么就攤上這事彬呻∫绿眨” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵闸氮,是天一觀的道長(zhǎng)祖搓。 經(jīng)常有香客問我,道長(zhǎng)湖苞,這世上最難降的妖魔是什么拯欧? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮财骨,結(jié)果婚禮上镐作,老公的妹妹穿的比我還像新娘。我一直安慰自己隆箩,他們只是感情好该贾,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捌臊,像睡著了一般杨蛋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天逞力,我揣著相機(jī)與錄音曙寡,去河邊找鬼。 笑死寇荧,一個(gè)胖子當(dāng)著我的面吹牛举庶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揩抡,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼户侥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了峦嗤?” 一聲冷哼從身側(cè)響起蕊唐,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烁设,沒想到半個(gè)月后替梨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡署尤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年耙替,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亚侠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曹体。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖硝烂,靈堂內(nèi)的尸體忽然破棺而出箕别,到底是詐尸還是另有隱情,我是刑警寧澤滞谢,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布串稀,位于F島的核電站,受9級(jí)特大地震影響狮杨,放射性物質(zhì)發(fā)生泄漏母截。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一橄教、第九天 我趴在偏房一處隱蔽的房頂上張望清寇。 院中可真熱鬧,春花似錦护蝶、人聲如沸华烟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盔夜。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喂链,已是汗流浹背返十。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衩藤,地道東北人吧慢。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像赏表,于是被迫代替她去往敵國(guó)和親检诗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容