考虑一下这个
public class Data {
private final SomeField[] fields;
.....
public SomeField[] getFields() {
return map == null ? null : map.clone();
}
安全性 - 方法返回内部数组
直接暴露内部数组允许用户修改一些代码
这可能很关键。返回数组的副本更安全。
我知道我们不应该使用clone()
要复制对象,请使用以下命令复制对象copy constructor
.
但这仍然复制了作为引用的内部对象。
建议采取哪些避免方法clone()
above?
Thanks
实用方法 Arrays.copyOf(T[] original, int newLength) 将使用内部数组中的相同对象创建一个新数组。
返回内部数组的问题通常是为了防止对数组内容的意外更改,这些更改将被任何其他客户端共享。共享所包含的对象通常并不具有相同的关注顺序,但如果您正在实现某种地图,您的要求可能会更严格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)