kotlin学习之数据类(七)
目录
- 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学习之数据类(七)相关推荐
- kotlin学习之嵌套类和内部类(六)
目录 1. Java中的内部类和嵌套类 2. kotlin中的嵌套类和内部类 1. Java中的内部类和嵌套类 //内部类,内部类持有了外部类的引用,所以在内部类中可以调用外部类的方法 public ...
- Kotlin学习笔记-3 --- 类与对象
文章参考 class KotlinClass {} /*** 空类 */ class EmptyClass 类的修饰符 1)classModifier: 类属性修饰符,标示类本身特性 abstract ...
- Kotlin学习二:类与对象
类 创建类 MyUtils,里面有一个值和获取的方法: class MyUtils {var a = 0fun get(): Int {return a} } 在 MainActivity 类中创建工 ...
- kotlin学习目录
目录 kotlin学习之基础(一) kotlin学习之函数(二) kotlin学习之类(三) kotlin学习之类的扩展(四) kotlin学习之密封类(五) kotlin学习之嵌套类和内部类(六) ...
- Kotlin学习笔记12——数据类和密封类
Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...
- Kotlin学习(二)-------绝对震撼你的kotlin数据类-data class
你所不了解的Kotlin数据类(data class) 回顾Java Java中我们在定义一个POJO,DTO这些要遵循JavaBean原则的实体类的时候,我们要写属性对应的setXxx和getXxx ...
- 转向Kotlin——数据类和封闭类
数据类和封闭类是Kotlin中的两种特殊的类,今天一起了解一下.更多精彩内容也可以关注我的微信公众号--Android机动车 数据类 数据类是Kotlin的一个语法糖.Kotlin编译器会自动为数据类 ...
- Kotlin入门-数据类与密封类 的解脱,由繁至简
前言 今天是十一的大好日子,可惜好多网站不让用了. 在Kotlin中,数据类大大减少了实体类的代码量: 本节需要了解几个问题: ① data关键字实现了哪些函数?与Any相比多了哪些? ② 密封类se ...
- Kt学习笔记(九)数据类、封闭类
文章目录 一.数据类 1.1.使用数据类 1.2.对象复制 1.3.数据类成员的解构 二.封闭类 一.数据类 数据类是 Kotlin 的一个语法糖. Kotlin 编译器会自动为数据类生成一些成员 ...
最新文章
- 用 Python 快速制作海报级地图
- 200页!分享珍藏很久的Python学习知识手册(附链接)
- vue Cli 脚手架的搭建
- MongoDB 常用故障排查工具
- Incorrect line ending: found carriage return (\r) without corresponding newline (\n)错误的解决方案...
- C++ DNN Opencv3.4 实现人脸计数和人脸检测
- 随想录(easyx中的键盘输入和鼠标消息)
- 机器学习基础(三十) —— 线性回归、正则化(regularized)线性回归、局部加权线性回归(LWLR)
- LINQToSQL中如何更好的手动设置导航字段,并返回实名类型而不是匿名类型
- StackOverFlow处女问
- html鼠标点击事件代码,HTML onmousedown事件用法及代码示例
- 一起学习R软件吧——R软件的使用
- Java setlocale方法_Java MessageFormat setLocale()用法及代码示例
- uni-app的三种生命周期函数整理
- APP 对接 java 微信支付统一下单接口
- 俞敏洪:这是一个创业的大时代
- python word保存图_使用python matplotlib 画图导入到word中如何保证分辨率
- Mysql面试题,sql优化,存储引擎,数据结构,基础知识等
- 对汇编中无条件转移指令的认识
- 微型计算机标致寄存器实验报告,xin微机原理与汇编语言程序设计