我该如何避免.clone()?

时间:2015-10-09 20:22:20

标签: java arrays

考虑这个课程

response.setHeader("Cache-Control","no-cache");    
response.setHeader("Pragma","no-cache");

这是创建问题

  

安全性 - 方法返回内部数组

     

直接公开内部数组允许用户修改一些代码   这可能很关键。返回数组副本更安全。

考虑class MyClass { private MyData[] data; public MyData[] getData() { return data == null ? null : (MyData[]) data.clone(); } 是不好的,应该避免,我该怎样做才能使这段代码变得更好?

1 个答案:

答案 0 :(得分:6)

返回数组副本的最简单方法可能是调用Arrays.copyOf

public MyData[] getData() {
    return data == null ? null : Arrays.copyOf(data, data.length);
}