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

来自对象的方法clone()不可见?

葛兴发
2023-03-14
问题内容

题:

package GoodQuestions;
public class MyClass {  
    MyClass() throws CloneNotSupportedException {
        try {
            throw new CloneNotSupportedException();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {    
        try {
            MyClass  obj = new MyClass();
            MyClass obj3 = (MyClass)obj.clone();            
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }
}

在这里,“ MyClass”类可以通过调用“ Object”类中的clone方法来克隆其自己的对象。当我尝试在同一包“
GoodQuestions”中的另一个类(“ TestSingleTon”)中克隆此类(“ MyClass”)的类时,会引发以下编译时错误。

“来自对象类型的方法clone()不可见

所以这是引发上述错误的代码?

package GoodQuestions;
public class TestSingleTon {
    public static void main(String[] args) {
        MyClass  obj = new MyClass();
        MyClass obj3 = obj.clone(); ---> here is the compile error.
    }
}

问题答案:

发生此错误的原因是在对象类中clone()方法受到保护。因此,您必须在相应的类中重写clone()方法。例如。在MyClass中添加以下代码

@Override
protected Object clone() throws CloneNotSupportedException {

    return super.clone();
}

还实现Cloneable接口。例如。public class MyClass implements Cloneable



 类似资料:
  • 我是第一次在学校项目中使用JavaFX,所以很可能我做了一些明显错误的事情。 在我的controller类中,我有一个方法(customerSU),它创建了一个新的Customer和Cleast对象,我使用这些新的Customer和Cleast对象的其他方法有一个错误“无法解析符号”Cust1“。 谢谢你的帮助!

  • 问题内容: 我有以下代码: 运行此命令时,我不断收到错误消息: 怎么解决呢? 问题答案: 您正在将 未绑定的 对象存储在字典中。通过访问名称作为类或实例上的属性,此类对象(以及对象,函数和对象)仅通过描述符协议进行绑定。直接访问类主体中的对象不是属性访问。 在 创建类 之后 创建字典(以便您将它们作为属性访问),或者显式绑定,或者在将它们存储在字典中之前提取原始函数。 注意,对对象的“绑定”仅意味

  • 术语“可选”是指可以从中选择行的任何对象;在SQLAlchemy中,这些对象从 FromClause 它们的特点是 FromClause.c 属性,它是FROM子句中包含的所有列的命名空间(这些元素本身 ColumnElement 子类)。 可选择的基础构造函数 顶层的“FROM子句”和“SELECT”构造函数。 Object Name Description except_(*selects,

  • 问题内容: 我阅读了J.Bloch撰写的Effective Java,其中写道: 如果您设计用于继承的类,请注意,如果您选择不提供行为良好的受保护克隆方法,则子类将无法实现Cloneable。 我有A类: B类扩展了A类: 因此,在这种情况下,我无法覆盖方法?如果是,则请解释原因。 问题答案: 在您的情况下,您可以覆盖: 而且仍然有一个有效的克隆机制-因此,当您陈述自己时,您就是在说实话。 但是,

  • 本文向大家介绍javascript中clone对象详解,包括了javascript中clone对象详解的使用技巧和注意事项,需要的朋友参考一下   开发中,打断对象间的引用关系,只想下个副本的情况无处不在,clone一个对象就在所难免了。   JavaScript中,简单的方法就是用JSON函数,将对象stringify成字符串,再parse成一个新对象。要么就是从网上搜个代码,开源社区里面clo

  • 问题内容: 我到处都在搜寻,但似乎找不到清晰的答案… 服务器(我的问题是glassfish)注入用@Context注释的实际objets的机制是什么?更具体地说,如果我想编写一个类似以下内容的类: 那我该怎么办呢?实例化MyObject的位置在哪里,由谁执行,如何执行? 编辑:我看过类似以下内容: 在JAX-RS中使用@ Context,@Provider和ContextResolver http