private List<CourseGroupBean> courseGroups = new ArrayList<CourseGroupBean>();
...
courseGroups = getAlgorithmUtil().listCourses();
...
List<CourseGroupBean> courseGroupsTwo = courseGroups;


我知道,如果我做第三行,它将把courseGroups的引用赋给courseGroupsTwo,但是我只想分配它的值。如何用Java做到这一点?

编辑

我的意思是,当我在courseGroupsTwo上删除/添加一个对象时,它在CourseGroups上没有任何改变。

最佳答案

Java本机不支持对象的按值复制,因此您必须自己做:

List<CourseGroupBean> courseGroupsTwo = new ArrayList<CourseGroupBean>(courseGroups);


将执行courseGroups的浅表副本,即将创建一个包含与courseGroups相同对象的新列表。如果需要,可以将ArrayList替换为更合适的List实现。

如果愿意,也可以使用cloneclone有点讨厌,因为您需要在克隆之后进行强制转换。强制转换通常很糟糕,因为它可能会引入运行时错误,而上面的代码在出现问题时会生成编译时错误。

09-05 02:50