天天看點

Kotlin的基本使用

目前很多公司應聘都會加上一條:熟悉Kotlin語言者優先

那麼我就來說一些Kotlin的簡單的用法

廢話不多說,先來一段代碼:

package com.example.lenovo.permission
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.Button
import android.widget.ListView
import android.widget.TextView
import com.android.volley.Request.Method.GET
import com.android.volley.Response
import com.android.volley.toolbox.StringRequest
import com.android.volley.toolbox.Volley
import com.google.gson.Gsonimport java.util.*

//繼承使用 : 而不是extends關鍵字
class MainActivity : AppCompatActivity() {

//Kotlin是空類型安全的,所有變量預設被修飾為"不可為空",隻有在類型後加上 ? 才代表可以為空變量
private var permission: Button? = null
private var lv: ListView? = null
private var str: String? = "http://litchiapi.jstv.com/api/GetFeeds?column=6&PageSize=12&pageIndex=3&val=100511D3BE5301280E0992C73A9DEC41"

//顯示override關鍵字:在java中我們使用@override注解使得代碼更簡潔
//但java并不強制試用。在Kotlin中必須顯示使用
override fun onCreate(savedInstanceState: Bundle?) { 
          super.onCreate(savedInstanceState) 
          setContentView(R.layout.activity_main) initView()
 //使用Java開發的時候每次我們建立一個新的listener時,都需要聲明一個onClick函數用于處理監聽回調
 //如果用Kotlin,我們可以直接監聽回調的代碼而不用再通過匿名對象傳遞OnClick方法,這個特性被稱為Lambda表達式 
          permission!!.setOnClickListener({
               initData() 
    }) 
} 

private fun initData() {
         val requestQueue = Volley.newRequestQueue([email protected])
         val stringRequest = StringRequest(GET, str, object : Response.Listener<String>{

         override fun onResponse(response: String?) {
         //使用Gson解析json資料
         var gson = Gson() 
        //Data::class.java 表示Java的class 
        //這裡的fromJson是model對象(資料模型) 
        val fromJson = gson.fromJson(response, Data::class.java) 
        var feedsBean = fromJson.paramz.feeds as ArrayList <Data.ParamzBean.FeedsBean>
        var adapter = MyAdapter([email protected], feedsBean) 
        lv!!.adapter = adapter
       } 
    }, null) 
        requestQueue.add(stringRequest) 
  } 
private fun initView() { 
        permission = findViewById(R.id.permission) as Button
         lv = findViewById(R.id.lv) as ListView
  }
}
           

這是一段非常簡單的Volley請求資料,代碼中可以看到其實Kotlin與java并沒有哪些太大的差別,隻是一些文法和調用順序發生了改變。

就比如說我們的java建立對象是這樣的

private String str = new String();
           

Kotlin則是這樣的

最大的差別就在于 Kotlin将對象名放在了前邊,然後使用 :進行對象的建立

而且 在類型後邊加上?就代表這個對象可以為空

Kotlin中有兩個關鍵字定義變量,分别是var和val,這兩個關鍵字外形看着差别很小就隻差了一個字母,但實際差别很大的。

var是一個可變變量,這是一個可以通過重新配置設定來更改為另一個值的變量。這種聲明變量的方式和java中聲明變量的方式一樣。

val是一個隻讀變量,這種聲明變量的方式相當于java中的final變量。一個val建立的時候必須初始化,因為以後不能被改變。

好啦 就這些,本人也是初學者,希望有大佬們可以互相交流一下