gpt4 book ai didi

java - 什么是克隆对象的 instanceof?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:45 25 4
gpt4 key购买 nike

如果类 A 公开对象的 clone()方法:

@Override
public Object clone() {
return super.clone();
}

instanceof 会是什么? (或 getClass() )使用 clone() 创建的 A 实例?
class B extends A 的实例呢?使用 clone() 创建方法?

编辑
澄清:我问这个是因为甚至在编译之前,Eclipse java 编辑器需要将返回的 clone() 实例转换到分配的对象。这表明返回的类是 Object (从技术上讲是这样,但到目前为止所有的答案都说类(class)应该是 A)

A original = new A();
A cloned1 = original.clone(); // Eclipse marks this as error
A cloned2 = (A) original.clone(); // This is OK

最佳答案

只要它通过调用 super.clone() 使用 Object.clone() 并且 < em>应该convention完成.

阅读doc here .

这会打印 String 但错误是 convention :

public class SomeTest {
@Override
protected Object clone() {
return "";
}
public static void main(String[] args) {
System.out.println(new SomeTest().clone().getClass().getSimpleName());
}
}

关于java - 什么是克隆对象的 instanceof?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21930308/

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