2004.10.06

JavaBeansのアクセッサメソッドの命名について

JavaBeansのアクセッサメソッド(setter/getterメソッド)から属性名を
導き出す際のルールをご存知ですか?
以前、アクセッサメソッドの命名で失敗したことがあるので、報告しておきます。

JavaBeansでは、アクセッサメソッドから属性名を導き出す際には、
java.beans.Introspector クラスの decapitalize メソッドが使われています。
この decapitalize メソッドの仕様では、通常は最初の文字を大文字から小文字に変換しますが、
特殊な場合、 例えば複数の文字があって最初と2番目の両方の文字が大文字の場合は
変換しないことになっています。
よって、「getGyokin()」というメソッドなら、プロパティは「gyokin」とし、
「getGYokin()」というメソッドなら、プロパティは「GYokin」とする必要があります。

私は、最初と2番目の両方の文字が大文字のアクセッサメソッドを使用した際に、
このルールを知らなかった為、「何で値が取得できない!?」と、
ずっとログや、ソースをチェックしながら悩んでしまいました。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
ykato