gpt4 book ai didi

java - 使用 Class.cast() 方法进行嵌套转换

转载 作者:太空宇宙 更新时间:2023-11-04 06:59:21 25 4
gpt4 key购买 nike

我有一个 Person 类,它实现了 Cloneable。然后,我有对象 po 引用 Person 对象。我正在尝试将一个克隆到另一个中,并发现以下方法有效:

Object p = new Person("Heather");
Object o = ((Person)p).clone();

(我必须使用该转换,因为 clone() 在 Object 中受到保护。我用它来调用 Person 中的 clone()。)

我需要知道的是如何使用Class.cast()执行上述转换。我知道如何施放一次,它会是这样的:

Object o = p.getClass().cast(p);

但是我该如何以这种方式进行嵌套转换示例。 (我需要知道,因为在这个项目中,我并不总是知道要转换到哪个类,但我会知道该类是Cloneable。)

我尝试过... ((可克隆)p).clone()...但这行不通。 clone()方法是Object类中的 protected 方法,而接口(interface)Cloneable没有clone()方法,因此编译器无法识别它。

我到处寻找答案,但在任何地方都找不到答案。感谢您的帮助。

最佳答案

在代码中使用 clone() 是不常见的(我从未使用过它,也没有见过它像这样明确地使用过)。

用于复印的常用模式是 copy constructor ,例如:

public class Person {
private String name;
public Person(String name) {
this.name = name;
}

// Copy constructor
public Person(Person person) {
this(person.name);
}
}

源对象重要字段的值用于初始化新对象的字段值。

关于java - 使用 Class.cast() 方法进行嵌套转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22330092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com