JavaBeansとは何か。
あんまり情報がなかったのですが、とりあえず集めたものを簡単にまとめてみます。
まず、一言で言うと、コンポーネント化を進めるために特定の規約に従って作られた Java のクラスってことらしいです。出所は Java での GUI プログラムのためのものらしく、仕様はここに落ちていたけど、英語なんで読めませんでした。orz
特定の規約ってのはいくらかあるみたいですが、とりあえず私に関係のあるプロパティの部分だけ。
JavaBeanでプロパティをあらわすためには特定のネーミングルールに沿って定義されたメソッドを使用します。まずプロパティの値を取得するためのメソッド(getter)は getXXX と接頭辞として get をつけます。同様に値を設定するためのメソッド(setter)には setXXX と接頭辞として set をつけます。
- getter:get + プロパティ名
- setter:set + プロパティ名
上記のプロパティ名は実はそのままはくっつかないのですが、それは後述します。
例えば、プロパティ foo があるとすれば以下のようになります。
public int getFoo(){ return this.foo; } public void setFoo(int value){ this.foo = value; }
get / set という接頭辞を付加する規約の例外として、プロパティの方が boolean に限り getter の接頭辞は is を使用します。
- getter:is + プロパティ名
- setter:set + プロパティ名
public boolean isFoo(){ return this.foo; } public void setFoo(boolean value){ this.foo = value; }
上記で、プロパティ名はそのまま接頭辞にくっつかないと書いています。それは get や set の後ろに続く文字列がそのままプロパティ名と一致しないからです。
基本的にメソッド内の文字列の先頭が小文字になったものがプロパティ名になります。また、一点だけ例外として一文字目と二文字目の両方ともが大文字だった場合はそれをそのままプロパティ名として使用します。
- getFooBar() : fooBar
- getURL() : URL
JavaBeanを調べるためのクラスとして Introspector というのが提供されています。これを使用すれば定義されているプロパティなどを取得できるとの事です。