本日のブログで答えちゃおうの巻

ともくんへ

だけどpublicだからダメかと言われると理由がわかりません。。。
publicにする意味がないことには気づきました。

サーブレットとセッション② - t_nagataの日記

public と記載しているという事は明示的に
「このメソッドは外から呼ばれています or このメソッドは外から呼ばれる事を想定して記載しています」
と宣言している事になります.
読む人から見れば「private でよさそうなのに public にしているのには意味があるのだな」と思われてしまいます.
逆に private で記載すると
「このメソッドは外から呼ばれる事を想定していません」
というメッセージになります.
今回の場合は外から呼んでいないですし,外から呼ばれる事を想定して書いてるわけでも無い(外から呼ばれるのを想定していたらこのクラスにいるのがおかしい)ので private にすべきです.
テストのためであるのならパッケージプライベートにし,コメントで「テストの為にパッケージプライベートになっています」的な事を記載すべきでしょう.
意味も無くアクセス範囲を広げる事はバグの温床にもなります(他の言語の global なども).


では,宿題として protected はどのような時に使うのかを考えてみましょう.

しょっぴーへ

・Serializable インタフェース
これを実装すると値を保存することができる?
メソッドをもたないインタフェース

Wicket計画その1.1 - プログラミングお勉強きろく

Serializable を実装したクラスと serialVersionUID を記載するかどうかは別の問題なので注意しましょう.
詳しくは API ドキュメントに記載されているので一読すると良いと思います.


http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/Serializable.html


で,考えなきゃいけない事は

ほんとうにクラスの詳細情報が違ってコンパイラも違うときに直列化ができなきゃいけないのか? serialVersionUID を書くって事はそう宣言していることになる

serialVersionUID に思うこと - 生きている乳酸菌 - subtech

という感じなのですが,僕もまだどれが最適解なのか判ってません><