【发布时间】:2019-09-16 11:39:56
【问题描述】:
我创建类的对象并尝试复制它。
我试图获取对象的属性但得到了这个:
Properties of Ann: Name: Ann Age: 10 Type: man High: 0.5 Code: 1408
Properties of Bob: Name: Bob Age: 20 Type: girl High: 15.0 Code: 1239
Default: Name: Orig Age: 18 Type: piece High: 25.7 Code: 1522
Bob has Anns' props: Name: Ann Age: 10 Type: man High: 0.5 Code: 1408
Default list: [BodyKt$main$Person@35cabb2a]
代码:
fun main() {
// copy object in object
class Person (var name: String = "Orig", var type: String = "piece",
var age: Int = 18, var high: Double = 25.7, var code: Int = 1522)
{
var info: String = "0"
get() = "Name: $name Age: $age Type: $type High: $high Code: $code"
val somebody
get () = listOf(Person("Copy", "some", 15, 11.1, 1870))
}
var default: Person = Person()
val ann: Person = Person("Ann", "man", 10, 0.5, 1408) // 1st object with some properties
var bob: Person = Person("Bob", "girl", 20, 15.0, 1239) // 2nd object without prop
println("Properties of Ann: ${ann.info}") // props 1st object
println("Properties of Bob: ${bob.info}") // props 2nd object
println("Default: ${default.info}") // props default
bob = ann.deepCopy() // copy 1st in 2nd
println("Bob has Anns' props: ${bob.info}") // new props 2nd object
println("Default list: ${default.somebody}")
}
默认列表:[BodyKt$main$Person@35cabb2a] 这是什么?
【问题讨论】:
标签: class kotlin copy deep-copy