欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin 開發(fā)環(huán)境詳解及簡(jiǎn)單實(shí)例

 更新時(shí)間:2017年06月20日 10:00:03   作者:steveyg  
這篇文章主要介紹了 Kotlin 開發(fā)環(huán)境詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下

Hello Kotlin

在前段時(shí)間舉辦的Google I/O 2017上,Google宣布Kotlin成為Android官方的開發(fā)語言,這個(gè)最初發(fā)布于2011年的語言在短短的時(shí)間內(nèi)就吸引了大量的開發(fā)者,而Google使得它進(jìn)入了更多人的視線。

Kotlin是一種開源的基于JVM的變成語言,由JetBeans公司開發(fā)(大概除了使用VS的.net開發(fā)者意外,都會(huì)或多或少聽說或使用過IDEA吧),名字取自圣彼得堡附近的一個(gè)小島(Koltin island)。
Kotlin是一種簡(jiǎn)單的語言,其主要目標(biāo)之一就是提供強(qiáng)大語言的同時(shí)又保持簡(jiǎn)單且精簡(jiǎn)的語法。其主要特性如下所示:
  • 輕量級(jí):這一點(diǎn)對(duì)于Android來說非常重要。項(xiàng)目所需要的庫(kù)應(yīng)該盡可能的小。Android對(duì)于方法數(shù)量有嚴(yán)格的限制,Kotlin只額外增加了大約6000個(gè)方法。
  • 互操作:Kotlin可與Java語言無縫通信。這意味著我們可以在Kotlin代碼中使用任何已有的Java庫(kù);因此,即便這門語言還很年輕,但卻已經(jīng)可以使用成百上千的庫(kù)了。除此之外,Kotlin代碼還可以為Java代碼所用,這意味著我們可以使用這兩種語言來構(gòu)建軟件。你可以使用Kotlin開發(fā)新特性,同時(shí)使用Java實(shí)現(xiàn)代碼基的其他部分。
  • 強(qiáng)類型:我們很少需要在代碼中指定類型,因?yàn)榫幾g器可以在絕大多數(shù)情況下推斷出變量或是函數(shù)返回值的類型。這樣就能獲得兩個(gè)好處:簡(jiǎn)潔與安全。
  • 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檢查?!?/li>
  • 更多特性可見官網(wǎng)

環(huán)境配置

對(duì)于大部分的安卓開發(fā)者而言,都是使用Android Studio(或IDEA)進(jìn)行開發(fā),當(dāng)然也有很小一部分人仍然堅(jiān)持使用eclipse,Kotlin對(duì)他們都進(jìn)行了支持,甚至是可以只是用控制臺(tái)進(jìn)行編譯。本文主要介紹Android Studio下的配置。
在Android Studio的歡迎頁中,點(diǎn)擊右下角的"Configure",選擇"Plugin"進(jìn)入插件管理界面。然后點(diǎn)擊“Install JetBeans Plugin..”,查找Kotlin插件,點(diǎn)擊Install即可安裝,成功后需要重啟Android Studio

項(xiàng)目的創(chuàng)建與配置
創(chuàng)建項(xiàng)目和創(chuàng)建普通的Android項(xiàng)目一樣,我們創(chuàng)建一個(gè)含有BaseActivity(命名為MainActivity)的項(xiàng)目,加載好之后,可以看到菜單欄Code下多了一個(gè)選項(xiàng)“Convert Java File to Kotlin file”。選中MainActivity.java,點(diǎn)擊進(jìn)行convert
轉(zhuǎn)換之前的代碼MainActivity.java:
package com.steveyg.hellokotlin; 
 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
 
public class MainActivity extends AppCompatActivity { 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
 
 } 
} 
轉(zhuǎn)換之后的代碼MainActivity.kt:
package com.steveyg.hellokotlin 
 
import android.os.Bundle 
import android.support.design.widget.FloatingActionButton 
import android.support.design.widget.Snackbar 
import android.support.v7.app.AppCompatActivity 
import android.support.v7.widget.Toolbar 
import android.view.View 
import android.view.Menu 
import android.view.MenuItem 
 
class MainActivity : AppCompatActivity() { 
 
 override fun onCreate(savedInstanceState: Bundle?) { 
  super.onCreate(savedInstanceState) 
  setContentView(R.layout.activity_main) 
 
 } 
} 
在轉(zhuǎn)換之后,Android Studio會(huì)提示Kotlin not configured,此時(shí)雖然可以編譯成功,但是kotlin是無效的,點(diǎn)擊Configure,根據(jù)自己的需要選擇需要配置的module即可
之后點(diǎn)擊Sync Now進(jìn)行同步

這樣在編譯后就可以看到kotlin實(shí)現(xiàn)的部分了。
第一行代碼hello world
作為程序員的傳統(tǒng),當(dāng)我們第一次接觸某種語言時(shí),都會(huì)先寫出hello world,接下來我們便開始嘗試實(shí)現(xiàn)這個(gè)最簡(jiǎn)單的kotlin APP。
首先,Module層的gradle中添加一行配置,然后再次通過Sync New進(jìn)行同步
中添加一行配置,然后再次通過Sync New進(jìn)行同步
apply plugin: 'kotlin-android-extensions' 
然后在布局文件中添加一個(gè)TextView,設(shè)置其id為textview
<TextView 
 android:id="@+id/textview" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" /> 
回到MainActivity中,增加對(duì)于布局文件的引用(比如此處我使用的是content_main.xml)
import kotlinx.android.synthetic.main.content_main.* 
之后會(huì)發(fā)現(xiàn),在onCreate里面可以直接對(duì)id進(jìn)行操作(比ButterKnife綁定還方便有木有),我們?cè)O(shè)置textview的內(nèi)容為Hello world,編譯
textview.text = "hello world"; 
兼容Java
前文說過,Kotlin和Java是能夠互通的,這也給安卓開發(fā)者帶來了極大的方便,我們可以直接在現(xiàn)有的工程中使用kotlin的代碼,或者是根據(jù)它們的特性選用不同的語言,那么他們是如何互通的呢。
1)Kotlin調(diào)用Java
首先,我們創(chuàng)建一個(gè)名為Demo的Java類,里面只含有一個(gè)返回字符串的方法getType
package com.steveyg.hellokotlin.java; 
 
public class Demo { 
 public String getType(){ 
  return "Java"; 
 } 
 
} 
然后在MainActivity.kt中使用對(duì)這個(gè)類型的對(duì)象進(jìn)行操作
var demo = Demo(); 
textview.text = demo.type; 
能夠看到,kotlin能夠直接使用java的內(nèi)容,同時(shí)還對(duì)getset方法進(jìn)行了處理,雖然在Demo對(duì)象中沒有type這個(gè)屬性,但是檢測(cè)到了getType方法,就自動(dòng)處理為type這個(gè)屬性,其他的方法名(不含getset)能夠正常使用不會(huì)處理。
對(duì)工程進(jìn)行編譯,可以看到內(nèi)容如下圖

我們看到textview的內(nèi)容變成了Java.
2)Java調(diào)用kotlin
創(chuàng)建一個(gè)Kotlin類,命名為KotlinDemo
package com.steveyg.hellokotlin.kotlin 
 
class KotlinDemo { 
 fun getType(): String{ 
  return "Kotlin"; 
 } 
} 
再在上文的Java類(Demo.java)中增加一個(gè)方法,用于調(diào)用kotlin
public String getKotlinType(){ 
 return new KotlinDemo().getType(); 
} 
然后再在MainActivity中進(jìn)行調(diào)用
textview.text = demo.kotlinType; 
再次編譯,結(jié)果見下圖
可以看到,內(nèi)容變成了Kotlin,說明調(diào)用成功。
其他
相比于Java,Kotlin的語法確實(shí)簡(jiǎn)潔了不少,更像是一種腳本語言,對(duì)于那些習(xí)慣JavaScript和Python的開發(fā)者應(yīng)該更容易上手。
本文中所有代碼見github,想要更深的了解Kotlin,可參考Kotlin官網(wǎng)以及開發(fā)文檔

本文代碼:http://xiazai.jb51.net/201706/yuanma/helloKotlin-master(jb51.net).rar

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • java泛型類的定義與使用詳解

    java泛型類的定義與使用詳解

    這篇文章主要為大家詳細(xì)介紹了java泛型類定義與使用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • GC調(diào)優(yōu)實(shí)戰(zhàn)之高分配速率High?Allocation?Rate

    GC調(diào)優(yōu)實(shí)戰(zhàn)之高分配速率High?Allocation?Rate

    這篇文章主要為大家介紹了GC調(diào)優(yōu)之高分配速率High?Allocation?Rate的實(shí)戰(zhàn)示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-01-01
  • Java實(shí)現(xiàn)添加文字水印和圖片水印功能

    Java實(shí)現(xiàn)添加文字水印和圖片水印功能

    為圖片添加水印是一種常用的圖片處理技術(shù),本文主要介紹了Java實(shí)現(xiàn)添加文字水印和圖片水印功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • SpringBoot的API文檔生成工具SpringDoc使用詳解

    SpringBoot的API文檔生成工具SpringDoc使用詳解

    這篇文章主要為大家介紹了SpringBoot的API文檔生成工具SpringDoc使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • java理論基礎(chǔ)Stream管道流狀態(tài)與并行操作

    java理論基礎(chǔ)Stream管道流狀態(tài)與并行操作

    這篇文章主要為大家介紹了java理論基礎(chǔ)Stream管道流狀態(tài)與并行操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Sentinel實(shí)現(xiàn)動(dòng)態(tài)配置的集群流控的方法

    Sentinel實(shí)現(xiàn)動(dòng)態(tài)配置的集群流控的方法

    這篇文章主要介紹了Sentinel實(shí)現(xiàn)動(dòng)態(tài)配置的集群流控,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 如何使用JJWT及JWT講解和工具類

    如何使用JJWT及JWT講解和工具類

    關(guān)于JWT的文章網(wǎng)上已經(jīng)多如牛毛了,但是相信很多同學(xué)學(xué)的還是云里霧里,所以在我學(xué)習(xí)JWT之后盡量用最簡(jiǎn)潔的描述寫下這篇文章用于日后復(fù)習(xí),與此同時(shí)也希望可以幫助同學(xué)們共同進(jìn)步
    2021-09-09
  • Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例講解

    Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例講解

    這篇文章主要介紹了Java模擬單鏈表和雙端鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例,注意這里的雙端鏈表不是雙向鏈表,是在單鏈表的基礎(chǔ)上保存有對(duì)最后一個(gè)鏈接點(diǎn)的引用,需要的朋友可以參考下
    2016-04-04
  • Java實(shí)現(xiàn)評(píng)論回復(fù)功能的完整步驟

    Java實(shí)現(xiàn)評(píng)論回復(fù)功能的完整步驟

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)評(píng)論回復(fù)功能的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 詳解使用Spring3 實(shí)現(xiàn)用戶登錄以及權(quán)限認(rèn)證

    詳解使用Spring3 實(shí)現(xiàn)用戶登錄以及權(quán)限認(rèn)證

    這篇文章主要介紹了詳解使用Spring3 實(shí)現(xiàn)用戶登錄以及權(quán)限認(rèn)證,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。
    2017-03-03

最新評(píng)論