不确定如何初始化一个新对象,该对象是JAVA中另一个对象的对象参数的副本

时间:2019-02-03 17:19:29

标签: java

本质上,我正在制作一个小程序,处理双精度值和枚举作为输入并返回一些输出。问题是我需要像这样新建一个对象:

对于这个问题,我无法导入类或使用静态方法,因此我一直试图在没有任何导入类的情况下克隆这两个对象。我不确定我的“ Example z = new Example(t)”行是否为假或什么。我可以将“ t”的值设置为另一个已设置的私有“示例”对象,但我不知道如何将该信息发送到对象“ z”。

public class Example{
    private double temp;
    private Scale scale;
    private char start;
    public Example(double temp){...}
    public Example(double temp, Scale scale){...}
    public Example(Example input){
              /*I don't know what to put in here in order
              in order to copy the input to a new object*/
    }
}

public class Test{
    public static void main(String[] args){
    Example t = new Example(-10000.1, Scale.FAHRENHEIT);
    Example z = new Example(t);
}

2 个答案:

答案 0 :(得分:2)

您可以根据用例使用以下任何一种技术:

  • 如果该类实现了Cloneable,请使用clone()
  • 手动创建克隆。如果有一个constructor接受所有 参数,可能很简单,例如new Example( ex.temp, ex.scale, ... )
  • 使用serialization。如果您的对象是图形,则可能更容易 序列化/反序列化以获得克隆。

您可以参考this以获得代码示例

答案 1 :(得分:2)

public Example(Example input){
    this.temp = input.temp;
    this.scale = input.scale;
    this.start = input.start;
}

可能会帮助;)