Android------Kotlin Data Class 使用以及注意事項
阿新 • • 發佈:2019-02-13
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了。
2.Copying方法的使用
這裡的user2 是從user物件copy過來的,使用了===作比較,該物件的引用發生改變。
這裡使用了==比較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 }