Kotlin实战指南十二:data class
生活随笔
收集整理的這篇文章主要介紹了
Kotlin实战指南十二:data class
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載請標明出處:https://blog.csdn.net/zhaoyanjun6/article/details/94649274
本文出自【趙彥軍的博客】
文章目錄
- 前言
- 正文
- toString()
- copy()
前言
在 kotlin 中我們定義一個模型類,比如 User 類 ,如下
class User (var id:Int,var name:String)如果我們要打印輸出 User 對象,那么輸出的是這個對象的內存地址,如果我們想輸出對象的字段,需要重寫 toString 方法,如下:
class User (var id:Int,var name:String){override fun toString(): String {return "User(id=$id, name='$name')"} }如果對象屬性非常多的情況下,那么 toString 方法將變得非常臃腫,那么有沒有簡介的方法可以實現 toString 方法,答案是有的,那就是 data 關鍵字。
正文
data class算是Kotlin中一大閃光點,data class就是一個類中只包含一些數據字段,類似于vo,pojo,java bean。一般而言,我們在Java中定義了這個數據類之后要重寫一下toString,equals等方法。要生成get,set方法。
然而在Kotlin中這些都不在需要自己手動去敲了,編譯器在背后默默給我們生成了如下的東西:
- equals()/hashCode()
- toString()方法
- componentN()方法
- copy()方法
在申明一個 data class 有一些需要注意的事項。
- 主構造函數必須要至少有一個參數
- 主構造函數中的所有參數必須被標記為val或者var
- 數據類不能有以下修飾符:abstract,inner,open,sealed
- data class只能實現接口(Kotlin1.1以前的規則),現在也可以繼承其它類
下面,我們用 data class 定義一個對象
data class User (var id:Int,var name:String)toString()
var user = User(0,"zhaoyanjun")Log.e("zhaoyanjun:", "toString $user")//輸出結果是:toString User(id=0, name=zhaoyanjun)copy()
var user = User(0,"zhaoyanjun") var user2 = user.copy(id = 2)Log.e("zhaoyanjun:", "toString $user $user2" )//結果:toString User(id=0, name=zhaoyanjun) User(id=2, name=zhaoyanjun)個人微信號:zhaoyanjun125 , 歡迎關注
總結
以上是生活随笔為你收集整理的Kotlin实战指南十二:data class的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kotlin实战指南十一:扩展函数
- 下一篇: Kotlin实战指南十三:协程