Java booleanの変数名
- ところでみんなboolean変数名ってどうしてる? - 谷本 心 in せろ部屋
http://d.hatena.ne.jp/cero-t/20100426/1272302989
JavaBeansで通常はgetXXXX()/setXXXX()でプロパティを取得するけど、booleanの場合にはisXXXX()/setXXXX()で取得する。そのため、isOpenedという変数名?プロパティ名?にすると、それを取得するメソッド名がisIsOpened()になってしまう?JavaBeansのプロパティ名と変数名とが一致していなくてもいいのかもしれないけど。
…と思って、試しにEclipseで「boolean isOpened」にsetter/getterを自動生成したら、以下のようになった。なかなか、かしこい。この場合、プロパティ名としてはopenedになるのかな?
public class TestBean { private boolean isOpened; public void setOpened(boolean isOpened) { this.isOpened = isOpened; } public boolean isOpened() { return isOpened; } }
Strutsを使っていた時の失敗例
それに関連して、昔の失敗を思い出した。
Strutsの
<logic:empty property="XXX">XXX is empty.</logic:empty>
とやっても、どうしても空と判定されなかった。絶対にnullのはずなのに。試しにXXXを
- getXXX()
- setXXX()
- isXXX()
と3つのメソッドを定義してしまっていた。というわけで意図せずboolean型のプロパティになってしまっていた。
これは半日、悩んでしまった。