当前位置: 首页 > 知识库问答 >
问题:

哪个类抛出CloneNotSupportedException?或者Cloneable的instanceof在哪里检查?

孟茂
2023-03-14

为了克隆类的对象,我们实现了Cloneable接口,并重写了clone方法:

protected Object clone() throws CloneNotSupportedException{
        return super.clone();
    }

上面的super.clone()调用对象的本机API clone()。

在可序列化的情况下,instanceof检查在ObjectOutputStream类中完成。类似地,我试图找出编译器在哪里检查对象是否是可克隆的实例?检查是本地执行的吗?

共有1个答案

岳嘉容
2023-03-14

如果它已经是Object类上的克隆实现,编译器为什么要检查它。该异常与需要实现cloneable以提供其他服务的其他实现有关。实际上,序列化需要serializable实现。然后,用户可以选择/调整所需的cloneable实现。

 类似资料:
  • 问题内容: 目前,我正在Laravel上的一个项目上工作,但被卡住了。 现在我有这段代码: 但这会产生: 如何获得正确的“或”订单? 问题答案: 在文档中查看“ 参数分组” 部分: https://laravel.com/docs/master/queries#parameter- grouping 它说明了如何在WHERE子句中对条件进行分组。 应该是这样的:

  • 问题内容: 我知道常量池的概念以及JVM用于处理字符串文字的字符串常量池。但是我不知道JVM使用哪种类型的内存来存储String常量文字。堆栈还是堆?由于它的文字不与任何实例相关联,因此我假定它将存储在堆栈中。但是,如果没有任何实例引用该文字,则必须通过GC运行来收集文字(如果我错了,请纠正我),那么如果将其存储在堆栈中,该如何处理? 问题答案: 从技术上来说,答案都不是。根据Java虚拟机规范,

  • 我真的不知道是什么导致了这个错误,也许你们中的一个知道。 首先,我想声明,我有两个站点,并运行与完全相同的源/数据库,其中一个工作良好。 所以我的第二个站点(见下图)突然出现了错误,导致下拉菜单、图表和侧边栏无法加载/部分加载。所以我做的第一件事是上传一个完整的备份/DB,从它工作的时候开始。清除了缓存,我仍然得到完全相同的错误。我甚至把所有的东西都转移到了一个新的服务器上。仍然得到同样的错误。然

  • 问题内容: 我有PyCharm,正在四处寻找git.exe,以使用我的存储库进行设置。 git.exe的路径是什么? 问题答案: 如果您在Windows上使用GitHub,则git.exe可能不在您的PATH中,但是您可以在以下位置找到它:C:\Users\ \AppData\Local\GitHub\PortableGit_ \bin\git.exe 我的情况就是这样,在Windows 7 +

  • 问题内容: 跑步, 安装后,我看到它说 位置在哪里?我检查了 无处可寻。 问题答案: 在Windows上,我可以在找到它。您可以在这里找到Java目录结构

  • 问题内容: 我想在系统上找到该定义,因此对于缺少该定义的系统,我可以实现它。在这里和其他站点上,我已经看到了各种定义,但是想在系统上检查确定的定义。 轻微的问题,因为我找不到_Bool的定义位置,甚至找不到stdbool.h 而对于上和不要么找到它。 那在哪呢 问题答案: 是内置类型,因此不要期望在头文件(甚至系统头文件)中找到它的定义。 话虽如此,从您要搜索的路径猜测您的系统,您是否进入过? 我