皆さん、
私はここで言及されているJavaのベストコーディングプラクティスを経験していました
http://viralpatel.net/blogs/most-useful-java-best-practice-quotes-java-developers/
2番目の引用は言う、
引用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メソッド内で使用したことはありません。
私は疑問に思っています(それは良い習慣の1つであると言われているので)-なぜ1つshould use
/shouldn't use
clone()
内部ゲッターメソッド?そしてどのシナリオで?
それはJavaの優れたコーディング手法であると見なされますか?
ありがとう