首页 > 其他分享 >Kotlin中的Data Class

Kotlin中的Data Class

时间:2023-08-08 23:34:28浏览次数:32  
标签:Kotlin 方法 关键字 copy Data Class

Data Class

Kotlin中的Data Class主要用于封装和持有数据,作用类似Java中的POJO对象。

 data class User(nickname: String, sex: Int, age: Int)

class之前加上 data 关键字即可声明一个Data Class。

Kotlin中编译器会自动为Data Class实现

  • equals()方法
  • hashcode()方法
  • toString()方法
  • componentN()解构声明方法
  • copy()方法

我们可以实现自己的equals()方法、hashcode()方法和toString()方法来覆盖自动生成的实现。但是对于 componentN() 方法和copy()方法是不允许覆盖的。
copy() 方法用于实现对Data Class对象的浅拷贝。

同时,对于Data Class还有如下限制:

  • 主构造函数必须至少拥有一个参数
  • 主构造函数的所有参数都必须使用 var 或者 val 关键字修饰
  • Data Class不能使用 openabstractsealedinner 关键字修饰

标签:Kotlin,方法,关键字,copy,Data,Class
From: https://www.cnblogs.com/jqctop1/p/17615692.html

相关文章

  • Pandas学习挑战第三关-数据结构DataFrame
    Pandas数据结构-DataFrameDataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共同用一个索引)。DataFrame构造方法如下:pandas.DataFrame(data,index,column......
  • RuntimeError: DataLoader worker (pid 7978) is killed by signal: Aborted.
    报错信息显示pytorch的DataLoader无法正确加载。造成这个报错的原因不尽相同,但是猜测,大体上都是程序不知为何无法开启新的线程,导致线程被系统终止。当线程数设为0时正常(num_worker=0)对于我来说,发现问题出现在使用vscode调试pytorch训练代码。如果是命令行运行则没问......
  • 你可能不需要 classnames或者clsx
    classnames是一个npm用来连接多个类名的工具包,可以加入逻辑判断从而生成自己需要的类名。例如:classNames('foo','bar');//=>'foobar'classNames('foo',{bar:true});//=>'foobar'classNames({'foo-bar':true});//=>&......
  • ECCV2022 Real-RawVSR Dataset (Tianjin University)
    1.摘要近些年superresolution(SR)取得了很大进步,图像的SR真实世界数据集也有很多,相比来说视频要落后很多。本文构建了第一个真实世界的RAW视频SR数据集。数据集中包含450对RAW视频,LR图像有对应的2x/3x/4x的HR图像。本文提出一个两分支网络,分别处理packedRGGB序列和BayerRAW序列......
  • Sqoop 连接mysql 错误 java.lang.NoClassDefFoundError(已解决)
    错误信息Exceptioninthread"main"java.lang.NoClassDefFoundError:org/apache/commons/lang/StringUtilsatorg.apache.sqoop.manager.MySQLManager.initOptionDefaults(MySQLManager.java:73)atorg.apache.sqoop.manager.SqlManager.<init......
  • DataFrame 指定某列的格式
    importpandasaspd#创建示例DataFramedata={'Name':['Alice','Bob','Charlie'],'Age':[25.0,30.0,35.0]#注意:这里的年龄列是浮点数类型}df=pd.DataFrame(data)#将'Age'列的数据类型设置为整数df['......
  • minio报错:Unable to use the drive /data: Drive /data: found backend type fs, expe
    docker安装minio,minio是最新的,使用命令:dockerpullminio/minio如下:启动命令:dockerrun-d-p9000:9000-p9001:9001--nameminio1-v/home/minio/data:/data-v/home/minio/config:/root/.minio-e"MINIO_ROOT_USER=admin"-e"MINIO_ROOT_PASSWORD=123456&quo......
  • DataFrame 按行转json数据
    importpandasaspd#创建示例DataFramedata={'Name':['Alice','Bob','Charlie'],'Age':[25,30,35],'Occupation':['Engineer','Teacher','Doctor']......
  • DataFrame排序,单列排序,多列排序
    importpandasaspd#创建示例DataFramedata={'Name':['Alice','Bob','Charlie'],'Age':[30,25,35],'Salary':[50000,60000,45000]}df=pd.DataFrame(data)#按照'Age'......
  • Databend 开源周报第 105 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。Databend轻量级CDC解决方案Debezium是一组用于捕获......