深度复制错误

时间:2013-03-21 21:57:57

标签: java deep-copy

Dea All,

我有以下内容:

class test {
    int x = 6;
    int y = 7;

    private int getX() {
        return x;
    }

    private int getY() {
        return y;
    }

    public test copy() {
        test myTest = new test();
        myTest.x = getX();
        myTest.y = getY();
        return myTest;
    }
}

然而,当我执行时:

test a = new test();
test b = a.copy();
b.x = 17;
System.out.println(a.x);

结果仍然是17.但是,深度复制不应该阻止这个吗?

有谁可以帮助我?

2 个答案:

答案 0 :(得分:3)

首先,您忽略了b.copy()的返回值:

test b = new test();
b.copy();

其次,我已经测试了您的代码,并按照您在问题中的说法打印6而不是17

编辑我注意到您已修复了编辑中的第一个问题。但是,代码仍然没有你所说的那样。

答案 1 :(得分:0)

结果应该是6而不是17。