伙计们,
我正在经历这里提到的 Java 最佳编码实践
http://viralpatel.net/blogs/most-useful-java-best-practice-quotes-java-developers/
第二句说,
引用 2:永远不要公开类的实例字段
我同意这是绝对正确的,但我被困在下面这句话下面几行作者的建议。
他说,
private String[] weekdays =
{"Sun", "Mon", "Tue", "Thu", "Fri", "Sat", "Sun"};
public String[] getWeekdays() {
return weekdays;
}
但是写getter方法并不能完全解决我们的问题。该阵列仍然可以访问。使其不可修改的最佳方法是返回数组的克隆而不是数组本身。因此getter方法将更改为
public String[] getWeekdays() {
return weekdays.clone();
}
我自己从未clone()
在 Java 类的任何 getter 方法中使用过。
我想知道(因为它被提到是一种良好的做法) - 为什么一个should use
/shouldn't use
clone()
内部吸气剂方法?在哪些情况下?
它是否有资格成为 Java 的良好编码实践?
谢谢