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功能一致,只提供属性访问和赋值功能,不应提供复杂的业务逻辑。

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

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


目录
相关文章
|
6月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
155 0
|
1月前
|
存储 Java 编译器
Kotlin学习教程(八)
Kotlin学习教程(八)
|
1月前
|
前端开发 Java API
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
本文是Vert.x学习系列的第五部分,讨论了回调函数的限制、Future和Promise在异步操作中的应用、响应式扩展以及Kotlin协程,并通过示例代码展示了如何在Vert.x中使用这些异步编程模式。
49 5
vertx学习总结5之回调函数及其限制,如网关/边缘服务示例所示未来和承诺——链接异步操作的简单模型响应式扩展——一个更强大的模型,特别适合组合异步事件流Kotlin协程
|
27天前
|
Java Kotlin
Kotlin学习教程(七)
《Kotlin学习教程(七)》主要介绍了Lambda表达式,这是一种匿名函数,广泛用于简化代码。文章通过与Java 8 Lambda表达式的对比,展示了Kotlin中Lambda的基本语法、参数声明、函数体定义及如何作为参数传递。示例包括按钮事件处理和字符串比较,突出了Lambda表达式的简洁性和实用性。
35 4
|
1月前
|
安全 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官方开发语言。
99 4
Kotlin学习教程(一)
|
29天前
|
Java Kotlin 索引
Kotlin学习教程(三)
Kotlin学习教程(三)
17 4
|
29天前
|
Java Kotlin
Kotlin学习教程(二)
Kotlin学习教程(二)
35 4
|
29天前
|
安全 Java 编译器
Kotlin学习教程(一)
Kotlin学习教程(一)
36 4
|
1月前
|
Java Maven Kotlin
vertx的学习总结7之用kotlin 与vertx搞一个简单的http
本文介绍了如何使用Kotlin和Vert.x创建一个简单的HTTP服务器,包括设置路由、处理GET和POST请求,以及如何使用HTML表单发送数据。
37 2
vertx的学习总结7之用kotlin 与vertx搞一个简单的http
|
29天前
|
存储 Java API
Kotlin学习教程(六)
《Kotlin学习教程(六)》介绍了Kotlin中的注解、反射、扩展函数及属性等内容。注解用于添加元数据,反射支持运行时自省,扩展则允许为现有类添加新功能,无需修改原类。本文还详细解释了静态扩展的使用方法,展示了如何通过companion object定义静态部分,并对其进行扩展。
16 2