groovy 深拷贝
时间: 2023-08-24 11:13:17 浏览: 291
Groovy
在 Groovy 中,要实现深拷贝(deep copy),可以使用 Groovy 的 `copy()` 方法。这个方法可以创建一个对象的副本,并将所有属性值都复制到新创建的对象中,实现了深拷贝的效果。
下面是一个示例代码,展示了如何使用 `copy()` 方法来进行深拷贝:
```groovy
class Person {
String name
int age
Person(String name, int age) {
this.name = name
this.age = age
}
}
def person = new Person("Alice", 25)
// 使用 copy() 方法进行深拷贝
def clonedPerson = person.copy()
// 修改原始对象的属性值
person.name = "Bob"
person.age = 30
// 打印深拷贝后的对象属性值
println clonedPerson.name // 输出 "Alice"
println clonedPerson.age // 输出 25
```
在上面的示例中,我们创建了一个 `Person` 类,然后使用 `copy()` 方法对 `person` 对象进行深拷贝,得到了 `clonedPerson` 对象。接着,我们修改了原始对象 `person` 的属性值,但是深拷贝后的对象 `clonedPerson` 的属性值保持不变。
需要注意的是,`copy()` 方法只对对象的属性进行复制,如果对象中包含其他引用类型的属性,仅会复制引用而不会复制引用指向的对象。如果需要对引用类型的属性也进行深拷贝,请自行实现相应的逻辑。
阅读全文