Kotlin之DataClass学习

简介: Kotlin之DataClass学习

数据类 dataclass:

顾名思义数据类只应关心data(和具体行为解耦)。

好处

不必像java中的javabean繁琐的写set,get,equal,hashcode方法,由Kotlin编译器自动生成。

特性:

1.主构造函数中的参数必须声明var或val,

理解:需要将参数作为这个类的变量

2.主构造函数中的参数会按照声明顺序提供commentnN方法。也可以自定义需加operta关键字,从构造函数不会生成commentn方法。

作用:将类属性提取变得更加方便,本质commentn函数按照参数顺序提取对应位置的类变量。

使用:可直接通过val(按参数顺序排列的外部变量)=数据类

注:顺序要和主构造函数一致

语法糖:字节码文件看是按照val定义的变量顺序调用数据类中的commentn方法

3.提供更方便的copy函数

作用:更方便的创建数据类

举例:数据类中的参数大多可以进行复用,这时就可以直接调用copy方法将不复用的变量主动声明即可构造出一个新数据类

实现原理

取出提供需要copy的数据类(可复用的数据类),当copy函数参数没有指定对应数据类中的属性时默认从复用数据类中取。

注:这是浅拷贝,新创建的引用指向的还是复用类中的对象。因此复用基本数据类型更加适合,需要复用对象时还是重新创建对象采用深拷贝比较合适。不应产生副作用

使用心得

一,在使用dataClass数据类时应尽量保证其和java中的JavaBean功能一致,只提供属性访问和赋值功能,不应提供复杂的业务逻辑。

二,语法糖可快速获取类中属性

三,复用基本类型功能抽象,只需提供需要变化的参数即可快速构造


目录
相关文章
|
5月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
145 0
|
17天前
|
存储 Java 编译器
Kotlin学习教程(八)
Kotlin学习教程(八)
|
17天前
|
前端开发 Java API
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
本文是Vert.x学习系列的第五部分,讨论了回调函数的限制、Future和Promise在异步操作中的应用、响应式扩展以及Kotlin协程,并通过示例代码展示了如何在Vert.x中使用这些异步编程模式。
38 5
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
|
17天前
|
Java Maven Kotlin
vertx的学习总结7之用kotlin 与vertx搞一个简单的http
本文介绍了如何使用Kotlin和Vert.x创建一个简单的HTTP服务器,包括设置路由、处理GET和POST请求,以及如何使用HTML表单发送数据。
28 2
vertx的学习总结7之用kotlin 与vertx搞一个简单的http
|
18天前
|
安全 Java 编译器
Kotlin学习教程(一)
在5月18日谷歌在I/O开发者大会上宣布,将Kotlin语言作为安卓开发的一级编程语言。并且会在Android Studio 3.0版本全面支持Kotlin。 Kotlin是一个基于JVM的新的编程语言,由JetBrains开发。JetBrains作为目前广受欢迎的 Java IDE IntelliJ的提供商,在Apache许可下已经开源其Kotlin编程语言。 Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。 Kotlin已正式成为Android官方开发语言。
42 3
Kotlin学习教程(一)
|
17天前
|
存储 Java API
Kotlin学习教程(六)
Kotlin学习教程(六)
24 2
|
17天前
|
存储 设计模式 JSON
Kotlin学习教程(五)
Kotlin学习教程(五)
24 2
|
18天前
|
安全 IDE Java
Kotlin学习教程(四)
数据类:使用data class定义 数据类是一种非常强大的类。在Kotlin学习教程(一)中最开始的用的简洁的示例代码就是一个数据类。这里我们再拿过来:
24 1
|
17天前
|
Java Kotlin
Kotlin学习教程(十)
Kotlin学习教程(十)
|
17天前
|
XML 编译器 Android开发
Kotlin学习教程(九)
Kotlin学习教程(九)