目录

  • 1. 概念
  • 2. 自动生成函数
  • 3. 排除元素
  • 4. 复制

1. 概念

Kotlin的数据类相当于Java的Bean,Java的一个类都需要写getter和setter方法,代码十分臃肿,而且每次我们添加或者修改一个成员的时候,需要改相应的代码。

public class JavaDemoBean {private String param1;private String param2;public String getParam1() {return param1;}public void setParam1(String param1) {this.param1 = param1;}public String getParam2() {return param2;}public void setParam2(String param2) {this.param2 = param2;}
}
---------------------

但是用数据类就非常简单,需要至少一个参数,并且所有参数都标记为var和val

data class Demo(val param1: String,val param2: String)

2. 自动生成函数

quals()/hashCode() 对;

toString();

componentN() 函数 按声明顺序对应于所有属性;

copy() 函数。

这些函数符合《effective Java》中提出的规则:equals相等性规则,覆盖了equals必须覆盖hashcode规则,规范的toString等。

3. 排除元素

如果想在自动生成的函数中排出某个属性的话,直接在类体中声明出来。

data class Demo(val param2: String){// 排出param1var param1: String = "";
}

4. 复制

在很多情况下,我们需要复制一个对象改变它的一些属性,但其余部分保持不变。

val jack = User(name = "Jack", age = 1)
val olderJack = jack.copy(age = 2)

他的实现是一个含有默认参数的copy函数

fun copy(name: String = this.name, age: Int = this.age) = User(name, age)

kotlin学习之数据类(七)相关推荐

  1. kotlin学习之嵌套类和内部类(六)

    目录 1. Java中的内部类和嵌套类 2. kotlin中的嵌套类和内部类 1. Java中的内部类和嵌套类 //内部类,内部类持有了外部类的引用,所以在内部类中可以调用外部类的方法 public ...

  2. Kotlin学习笔记-3 --- 类与对象

    文章参考 class KotlinClass {} /*** 空类 */ class EmptyClass 类的修饰符 1)classModifier: 类属性修饰符,标示类本身特性 abstract ...

  3. Kotlin学习二:类与对象

    类 创建类 MyUtils,里面有一个值和获取的方法: class MyUtils {var a = 0fun get(): Int {return a} } 在 MainActivity 类中创建工 ...

  4. kotlin学习目录

    目录 kotlin学习之基础(一) kotlin学习之函数(二) kotlin学习之类(三) kotlin学习之类的扩展(四) kotlin学习之密封类(五) kotlin学习之嵌套类和内部类(六) ...

  5. Kotlin学习笔记12——数据类和密封类

    Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...

  6. Kotlin学习(二)-------绝对震撼你的kotlin数据类-data class

    你所不了解的Kotlin数据类(data class) 回顾Java Java中我们在定义一个POJO,DTO这些要遵循JavaBean原则的实体类的时候,我们要写属性对应的setXxx和getXxx ...

  7. 转向Kotlin——数据类和封闭类

    数据类和封闭类是Kotlin中的两种特殊的类,今天一起了解一下.更多精彩内容也可以关注我的微信公众号--Android机动车 数据类 数据类是Kotlin的一个语法糖.Kotlin编译器会自动为数据类 ...

  8. Kotlin入门-数据类与密封类 的解脱,由繁至简

    前言 今天是十一的大好日子,可惜好多网站不让用了. 在Kotlin中,数据类大大减少了实体类的代码量: 本节需要了解几个问题: ① data关键字实现了哪些函数?与Any相比多了哪些? ② 密封类se ...

  9. Kt学习笔记(九)数据类、封闭类

    文章目录 一.数据类 1.1.使用数据类 1.2.对象复制 1.3.数据类成员的解构 二.封闭类 一.数据类   数据类是 Kotlin 的一个语法糖. Kotlin 编译器会自动为数据类生成一些成员 ...

最新文章

  1. 用 Python 快速制作海报级地图
  2. 200页!分享珍藏很久的Python学习知识手册(附链接)
  3. vue Cli 脚手架的搭建
  4. MongoDB 常用故障排查工具
  5. Incorrect line ending: found carriage return (\r) without corresponding newline (\n)错误的解决方案...
  6. C++ DNN Opencv3.4 实现人脸计数和人脸检测
  7. 随想录(easyx中的键盘输入和鼠标消息)
  8. 机器学习基础(三十) —— 线性回归、正则化(regularized)线性回归、局部加权线性回归(LWLR)
  9. LINQToSQL中如何更好的手动设置导航字段,并返回实名类型而不是匿名类型
  10. StackOverFlow处女问
  11. html鼠标点击事件代码,HTML onmousedown事件用法及代码示例
  12. 一起学习R软件吧——R软件的使用
  13. Java setlocale方法_Java MessageFormat setLocale()用法及代码示例
  14. uni-app的三种生命周期函数整理
  15. APP 对接 java 微信支付统一下单接口
  16. 俞敏洪:这是一个创业的大时代
  17. python word保存图_使用python matplotlib 画图导入到word中如何保证分辨率
  18. Mysql面试题,sql优化,存储引擎,数据结构,基础知识等
  19. 对汇编中无条件转移指令的认识
  20. 微型计算机标致寄存器实验报告,xin微机原理与汇编语言程序设计

热门文章

  1. 1.IDA-基本操作(改变Image Base地址、打开、保存IDA的不同方式)
  2. C++虚继承(四) --- /d1 reportSingleClassLayout插入看类内存布局
  3. 反汇编RETN 0x0c的理解
  4. 1.5 MFC封装思想
  5. 进程间通信 - 剪贴板实现
  6. 深入浅出 Linux 惊群:现象、原因和解决方案
  7. IDEA 的 debug 怎么实现?出于这个好奇心,我越挖越深!
  8. ​Hmily重启后月度报告
  9. The Tail at Scale
  10. Go Modules 的智障版本选择