原型模式与克隆 — 软件工程选择题
题目
某报表类 Report 实现了 Cloneable,其字段有:标题(String)、创建次数(int)、数据列表(List<String>)。其 clone() 方法写为 super.clone() 的浅拷贝。现有原型 r1,数据列表内容为 ["A"]。执行:Report r2 = r1.clone() 后,先向 r2 的数据列表中添加元素 "B",再调用 r2 各字段读取。下列说法正确的是:A. r1 的数据列表仍为 ["A"],创建次数与 r2 互不影响 B. r1 的数据列表变为 ["A","B"],因浅拷贝共享同一列表引用 C. r1 的数据列表变为 ["A","B"],且标题字段也被 r2 修改 D. r1 的数据列表仍为 ["A"],因 String 不可变所以列表也独立