标签: cloneable

为什么Cloneable不被弃用?

通常理解CloneableJava 中的接口是破坏的.这有很多原因,我不会提及; 其他人已经做到了.它也是Java架构师自己的位置.

因此,我的问题是:为什么还没有被弃用?如果核心Java团队已经确定它已被破坏,那么他们也必须考虑弃用.他们这样做的原因是什么(在Java 8中,它仍然没有被弃用)?

java deprecated cloneable java-8

137
推荐指数
2
解决办法
8620
查看次数

我为什么要在c#中实现ICloneable?

你能解释一下为什么我应该继承ICloneable并实现这个Clone()方法吗?

如果我想做一个深层复制,我不能只实现我的方法吗?我们说吧MyClone()

我为什么要继承ICloneable?有什么好处?这只是让代码"更具可读性"的问题吗?

.net c# icloneable cloneable

109
推荐指数
4
解决办法
5万
查看次数

如何正确覆盖克隆方法?

我需要在我的一个没有超类的对象中实现深度克隆.

处理CloneNotSupportedException超类抛出的检查的最佳方法是什么(是Object)?

一位同事建议我按以下方式处理:

@Override
public MyObject clone()
{
    MyObject foo;
    try
    {
        foo = (MyObject) super.clone();
    }
    catch (CloneNotSupportedException e)
    {
        throw new Error();
    }

    // Deep clone member fields here

    return foo;
}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是一个很好的解决方案,但我想把它扔到StackOverflow社区,看看是否还有其他任何我可以包含的见解.谢谢!

java clone cloneable cloning

109
推荐指数
5
解决办法
10万
查看次数

关于Java可克隆

我正在寻找一些解释Java的教程Cloneable,但没有得到任何好的链接,而且Stack Overflow正变得越来越明显.

我想知道以下内容:

  1. Cloneable意味着我们可以通过实现Cloneable接口来获得克隆或对象的副本.这样做的优点和缺点是什么?
  2. 如果对象是复合对象,递归克隆如何发生?

java cloneable

91
推荐指数
5
解决办法
7万
查看次数

instanceof - 不兼容的条件操作数类型

以下编译正常:

  Object o = new Object();
  System.out.println(o instanceof Cloneable);
Run Code Online (Sandbox Code Playgroud)

但这不是:

  String s = new String();
  System.out.println(s instanceof Cloneable);
Run Code Online (Sandbox Code Playgroud)

抛出编译器错误.

问题是什么?

java instanceof cloneable

54
推荐指数
3
解决办法
4万
查看次数

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

题:

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这里的类'MyClass'可以通过调用'Object'类中的clone方法来克隆自己的对象.当我尝试在同一个包'GoodQuestions'中的另一个类('TestSingleTon')中克隆这个类('MyClass')时,它会抛出以下编译时错误.

'Object类型的方法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. …
Run Code Online (Sandbox Code Playgroud)

java methods clone cloneable

45
推荐指数
2
解决办法
4万
查看次数

Java:Cloneable接口的基本原理

为什么界面中没有.clone()指定方法java.lang.Cloneable

java specifications clone cloneable

32
推荐指数
4
解决办法
7508
查看次数

如何克隆存储盒装特征对象的结构?

我编写了一个程序,它具有特征AnimalDog实现特征的结构.它还有一个AnimalHouse存储动物作为特征对象的结构Box<Animal>.

trait Animal {
    fn speak(&self);
}

struct Dog {
    name: String,
}

impl Dog {
    fn new(name: &str) -> Dog {
        return Dog {
            name: name.to_string(),
        };
    }
}

impl Animal for Dog {
    fn speak(&self) {
        println!{"{}: ruff, ruff!", self.name};
    }
}

struct AnimalHouse {
    animal: Box<Animal>,
}

fn main() {
    let house = AnimalHouse {
        animal: Box::new(Dog::new("Bobby")),
    };
    house.animal.speak();
}
Run Code Online (Sandbox Code Playgroud)

它返回"Bobby:ruff,ruff!" 正如所料,但如果我尝试克隆house编译器返回错误:

fn main() {
    let house …
Run Code Online (Sandbox Code Playgroud)

struct clone traits cloneable rust

20
推荐指数
3
解决办法
3891
查看次数

让我的班级实现Cloneable有什么意义?

我遇到了一些实现的类代码,Clonable文档说明:

类实现了Cloneable接口,以向Object.clone()方法指示该方法合法地为该类的实例制作字段的字段副本.在未实现Cloneable接口的实例上调用Object的clone方法会导致抛出异常CloneNotSupportedException.按照惯例,实现此接口的类应使用公共方法覆盖Object.clone(受保护).有关重写此方法的详细信息,请参阅Object.clone().请注意,此接口不包含克隆方法.因此,仅仅通过实现该接口的事实来克隆对象是不可能的.即使反射调用clone方法,也无法保证它会成功.

我无法理解实现这个类的重点,正如文档中所述,该.clone方法没有在接口中实现,我必须实现它.那么为什么要使用这门课?为什么我不在copyClass我的类中编写一个方法来制作对象副本而不执行这个类?

提前致谢.

java cloneable

19
推荐指数
1
解决办法
2万
查看次数

Effective Java:分析clone()方法

请考虑以下有效Java项目11(明智地覆盖克隆),其中Josh Bloch正在解释clone()合同的错误.

这份合同存在许多问题."没有被称为构造函数"的规定过于强烈.一个行为良好的克隆方法可以调用构造函数来创建正在构建的克隆内部的对象.如果类是final,clone甚至可以返回由构造函数创建的对象.

有人可以解释Josh Bloch在第一段中所说的"如果类是final,clone甚至可以返回由构造函数创建的对象".这里final有什么关系clone()

java clone cloneable

18
推荐指数
3
解决办法
7566
查看次数