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

哪个类抛出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,从它工作的时候开始。清除了缓存,我仍然得到完全相同的错误。我甚至把所有的东西都转移到了一个新的服务器上。仍然得到同样的错误。然

  • 我有一个注入服务的RESTendpoint。 其中一些会验证数据(例如令牌),如果不正确,则会抛出RestServiceExcense异常。异常由ExceptionMapper处理,以便返回适当的响应。其他服务返回/处理信息。 我的自定义异常类与其他字段: 示例服务方法: 在注入的服务中抛出RestServiceExcture是好的做法吗?如何设计代码方便测试?在哪里放置验证方法-服务或静态类?

  • 问题内容: 我正在运行JBoss服务器(在Eclipse内部),其中混入了一些Hibernate。我从这里安装了Oracle的ojdbc驱动程序: Oracle Database 11g第2版JDBC驱动程序 我专门下载了文件:ojdbc6dms_g.jar,该文件根据站点包含支持DMS的工具。但是,当我启动AS服务器时,得到以下信息: 当服务器尝试获取新的hibernateejb异常时。 我检查

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