packagecom.stone.demo.basic.deepcopy1classDeepCopy{}interfaceDeepCopyable<outR>{fundeepCopy():R}// 一. kotlin实现对象的深度拷贝// 实现方式: 使用 直接 "创建对象" 的方式实现深度拷贝// 优点: 可以用于 "data-class" 和 "非data-class"// 缺点: a. 需要实现接口并实现接口中的方法, 使用麻烦//...
1. Kotlin 数据类(data class)的基本概念 Kotlin 中的数据类是一种用于封装和持有数据的类,类似于 Java 中的 POJO(Plain Old Java Object)。通过在类声明前添加 data 关键字,Kotlin 编译器会自动为该类生成 equals()、hashCode()、toString() 等方法,以及 componentN() 和copy() 方法。这使得数据类的编写更...
copyUser1-> User(name=Jason, age=26) copyUser2-> User(name=Alice, age=30) hashCode的用法为: data类复写hashCode函数 , 比较对象属性的值 , 而非地址 非data类比较: classUser(varname : String,varage: Int ) {}varuser1 = User("Alice",25)varuser2 = User("Alice",25) Log.i(Tag,"use...
Kotlin中的Data Class主要用于封装和持有数据,作用类似Java中的POJO对象。 dataclassUser(nickname: String, sex:Int, age:Int) 在class之前加上data关键字即可声明一个Data Class。 Kotlin中编译器会自动为Data Class实现 equals()方法 hashcode()方法 toString()方法 componentN()解构声明方法 copy()方法 我们可以...
深入学习data class 和 class的区别 代码语言:javascript 复制 1、toString函数会被复写为打印具体属性的值 2、新增components方法,获取对应属性的值 3、新增copy方法,可以用来修改具体属性的值 4、重写了hashCode方法,不再比较对象引用,而是比较对象的值 第一条不再说明 ...
一. data class 的 copy() 为浅拷贝 浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。
Data Class自动生成以下方法: equals():用于比较两个对象的内容是否相同。 hashCode():返回对象的哈希码,用于哈希集合。 toString():返回对象的字符串表示,包含所有属性的值。 copy():创建对象的副本,同时可以修改部分属性。 dataclassPerson(valname:String,valage:Int)funmain(){valamy=Person("Amy",25)valjohn...
copy() 方法:数据类自动生成一个 copy() 方法,用于创建对象的副本并修改其中的属性。 解构声明:数据类的属性可以通过解构声明(destructuring declaration)来分别访问。 以下是数据类的使用示例: funmain(){valperson1=Person("Alice",25)valperson2=Person("Bob",30)println(person1)// 输出:Person(name=Alice,...
在Kotlin 的 data class 中使用 MapStruct 简介:在 Kotlin 的 data class 中使用 MapStruct 一. data class 的 copy() 为浅拷贝 浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存...