修改原始列表对象的问题?

时间:2015-07-14 13:14:18

标签: java android list arraylist

我遇到问题临时列表也会在原始列表内容被更改时被修改。预期结果应为“使用原件”。

public static void main(String[] args) {

        List<Employ> e = new ArrayList<Employ>();
        e.add(new Employ("Employ Original"));
        //
        List<Employ> exList = new ArrayList<>(e);
        e.get(0).name = "Employ Modified";

        // Result should be 'Employ Original' 
        System.out.println("" + exList.get(0).name);
    }

    public static class Employ {
        public String name;

        public Employ(String str) {
            this.name = str;
        }
    }

1 个答案:

答案 0 :(得分:1)

如果需要副本,则需要克隆原始对象。 ArrayList只为新列表创建新指针。指针仍然只指向原始对象。