当前位置: 首页 > 面试题库 >

您使用Object.clone()做什么?

申昌勋
2023-03-14
问题内容

一位同事最近问我如何深度克隆Map,我意识到我可能从未使用过clone()方法,这让我感到担忧。

您发现需要在何处克隆对象的最常见情况是什么?


问题答案:

我假设您是Object.clone()用Java
指的。如果是,请告知它Object.clone()存在一些主要问题,并且在大多数情况下,建议不要使用它。请参阅Joshua Bloch撰写的“
Effective
Java”中

的第11项,以获取完整答案。我相信您可以安全地Object.clone()在原始类型数组上使用,但除此之外,您还需要谨慎地正确使用和覆盖克隆。最好定义一个复制构造函数或一个静态工厂方法来根据您的语义显式克隆对象。



 类似资料:
  • 问题内容: 我读过,可以使用COM / ActiveX自动执行Crystal Reports中的月度报告。我不太了解这是什么,甚至可以使用它来做什么。 我也使用Excel进行了大量工作,看起来您也使用COM / ActiveX与其进行交互。 有人可以解释它是如何工作的,也许可以提供一个简短的例子? 问题答案: 首先,您必须安装出色的pywin32模块。 它提供COM支持。您需要运行该实用程序。它位

  • 问题内容: 我开始学习Python,并且遇到过生成器函数,这些函数中包含yield语句。我想知道这些功能确实可以解决哪些类型的问题。 问题答案: 生成器为您提供懒惰的评估。您可以通过遍历它们来使用它们,可以显式地使用“ for”,也可以隐式地将其传递给任何迭代的函数或构造。您可以将生成器视为返回多个项目,就像它们返回一个列表一样,但是与其一次一次返回它们而不是一次全部返回它们,而是将生成器功能暂停

  • 问题内容: 从指令Angular docs中 ,我看到compile函数具有3个参数,其中一个是。该文档提供的唯一解释是: transclude-包含链接的函数:function(scope,cloneLinkingFn)。 我试图了解您在克隆链接功能中到底会做什么。我什至不知道将哪些参数传递给它。我发现了一个示例,该示例的一个参数似乎是一个HTML元素。还有其他可用参数吗?这到底是哪个HTML元

  • 问题内容: 传统观点认为,您只能抛出在Java 中扩展的对象,但是是否可以禁用字节码验证程序并让Java编译并运行抛出任意对象(甚至是原语)的代码? 我查找了JVM ,它将弹出操作数堆栈中的第一个objref。但是会检查所述引用是否指向运行时? 问题答案: 这取决于您的JVM实现。根据Java VM规范,如果对象不是,则它是未定义的行为。 objectref 必须 是引用类型,并且必须引用Thro

  • 问题内容: 我记得在AngularJS的视频中看到过这句名言,说应该一直使用。(点)在您的模型中。 好吧,我试图按照这个说法说我有 所以我认为这很有效 我使用了一个点,所以我认为这很好。 但是我有一些我认为不属于模型的属性,但也许我错了。例如,我有一个属性,可以使用ng- disable启用或禁用按钮,我已经使用点格式输入了此属性。基本上这样输入 我用它像 我是否应该将此模型作为“项目”的一部分?

  • 问题内容: 我知道使用这种克隆机制并不是一个好主意(因为它被某些作者建议“破了”),尽管我需要帮助来理解它的工作原理。我们得到以下类层次结构: 既然扩展了,如何返回一个实例?实际上是返回对class对象的引用。为什么我们可以将其投射到?有不在班上的成员。默认行为实际上是如何设法自动克隆此变量的(因为该变量在class中没有记录)? 同样,M也是如此。在我们中,将一个对象从class (由返回)转换