直接将内部数组暴露给调用者破坏了封装性,因为调用者可能在拥有内部数组的对象外部更改或者删除数组的元素。返回内部数组的拷贝会更加安全。
例如,下面的用法违反了该规则:
public byte[] getContent() {
return this.content;
}
可以改为如下形式:
public byte[] getContent() {
return this.content.clone();
}
直接将内部数组暴露给调用者破坏了封装性,因为调用者可能在拥有内部数组的对象外部更改或者删除数组的元素。返回内部数组的拷贝会更加安全。
例如,下面的用法违反了该规则:
public byte[] getContent() {
return this.content;
}
可以改为如下形式:
public byte[] getContent() {
return this.content.clone();
}