有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

  1. # 1 楼答案

    根据您的用例,您可以使用以下任何技术:

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

    您可以参考this了解代码示例

  2. # 2 楼答案

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

    可能会有帮助;)