日々常々

ふつうのプログラマがあたりまえにしたいこと。

JavaBeansの命名規則

propertyの名前に従い、それぞれgetter/setterが存在する。getter/setterの名前は以下のように決定される。
小文字から始まる(3文字目以降は大文字交じりも可)property

  • propertyName
    • getPropertyName/setPropertyName

大文字のみで構成されるproperty

  • CAPITAL
    • getCAPITAL/setCAPITAL

小文字から始まるものは、一般的なものとして、1文字目を大文字にしてget/setを先頭に付与したgetter/setterとなる。先頭から2文字が大文字で構成されるものは、固有名詞もしくは略称として、大文字/小文字の変換は行われず、そのままget/setを先頭に付与したgetter/setterとなる。
問題になってくるのは、1文字目が小文字、2文字目が大文字のもの。

  • aProperty
    • getAProperty/setAProperty

こうしてしまうと、property名として推察されるのは大文字から始まるゆえに変換が行われなかったと考えられ、APropertとなり、元々のaPropertyと違うものになる。
これを防ぐためか、property名からgetter/setterを自動生成するものは、先頭から2文字目が大文字かで判断しているようだ。
よってgetter/setterは以下のようになる。

  • aProperty
    • getaProperty/setaProperty

でもこれではgetter/setterであることが判りづらくなってしまっている。やはり1文字目小文字、2文字目大文字のproperty名は使わないのが無難なのかもしれない。

1文字の場合は小文字のpropertyとみなされる。大文字1文字とはならない模様。

問題になるのは1文字だけもしくは、1文字目が大文字、2文字目が小文字のもの。この場合、getter/setterからpropery名を出すと元のproperty名が判らなくなる。

  • Aproperty
    • getAproperty/setAproperty
  • A


以上のことから、property名に使わないほうがいい名称は次の通り。

  1. 1文字目が大文字かつ2文字目が小文字
  2. 1文字目が小文字かつ2文字目が大文字
  3. 大文字1文字のみ

ソース

JavaBeans(TM) Specification 1.01 Final Release

8.8とか、その辺。