1. 程式人生 > >Android------Kotlin Data Class 使用以及注意事項

Android------Kotlin Data Class 使用以及注意事項

1.前言:

會自動幫我們生成get,set方法,減少程式碼編寫量,更輕量級別的實體類。

2.使用說明:

data class User(val name: String, val age: Int)

會自動生成一下方法:

  • equals()/hashCode() pair;
  • toString() of the form “User(name=John, age=42)”;
  • componentN() functions corresponding to the properties in their order of declaration;
  • copy() function (see below).

3.注意事項:

Data Class 是一個final類

1.建構函式中至少有一個引數

2.建構函式中的引數都需要宣告var 或者val

3.data class不能是抽象的,可繼承的,或者內部類,因為這是一個final類

4.不能夠為componentN()和copy()顯示實現 (componentN 會根據構造方法中的引數,自動生成component1-componentN 的方法,所以不需要顯示實現,如果顯示實現,會提示報錯)

5.如果需要顯示的宣告一個無參的構造方法,需要給構造方法裡面的引數設定預設值

4.簡單使用

1.在Android Studio中可以匯入外掛 JsonToKotlinClass,可使用該外掛自動將json資料轉換為對應的Data Class物件。

安裝說明:File –> Settings –> Plugins –> Browse Repositories –>Search JsonToKotlinClass

使用alt+k (window系統,窮*買不起mac)

出現如下介面,則可以建立自己的data class了。

img

2.Copying方法的使用

img

這裡的user2 是從user物件copy過來的,使用了===作比較,該物件的引用發生改變。

img

這裡使用了==比較2個User物件,發現返回的值為true,兩個等號的時候比較的是非引用值,而是對應欄位的內容是否相同。

類似下面的模樣:

val (name, age) = person 

for ((a, b) in collection) { ... }

for ((key, value) in map) {
   // do something with the key and the value
}

img

img