ほげにっき

hogedigoの日記

シンプルなプロパティ

Seasar2 - S2JDBC - S2JDBCとは

Javaでプロパティを作るには、フィールドとgetter、setterメソッドの定義が必要でした。 getter、setterメソッドは、カプセル化の観点から必要とされてきましたが、本当にどんな場合でも必要なのでしょうか。

Javaでは、テーブルの一行に対応するデータの入れ物をエンティティと呼ぶことが一般的です。 テーブルのカラムのデータは、もともとpublicな存在なので、エンティティのプロパティがカラムに一対一に対応するなら、 プロパティのgetter, setterメソッドを省略して、 publicフィールドにしても良いのではないでしょうか。

おぉ!常々考えていたことだ!
2007-10-12 - ほげにっき

Sunが、java beansの仕様としてpublic fieldとgetter, setterのどちらもプロパティとして扱えるように仕様変更してくれると助かるんだけどなー。getter,setter優先にすれば下位互換も保たれるし。

あ、public fieldを自動収集してくれる基底BeanInfoクラスってはどうだろうか?
そこまでするメリットないか。。。*1

*1:後で調べたら、どうやらメソッドは必須な模様。そりゃそうか。。