【Javaの嫌いなところシリーズ】getter、setterなんて大嫌い | 超キレやすいプログラマのブログ

超キレやすいプログラマのブログ

キレてキレてキレまくる

Javaの開発で感じる不可解なことがもう溜まりに溜まってしまい、毛髪がすべて抜け落ちそうなのでここで書いて毛髪を保護することにする。


今回は、getter、setterについて。


はっきりいって、今でもActionFormにgetter、setter(以下、g/sと略す)をいちいち書いているプロジェクトにしょっちゅう出会っている気がするが、これって世間一般でもそうなんかね?
俺、ActionFormのg/sって超無駄なプログラムに思えてならないんだけど。


まず何より、クラス内の全部の変数にg/s設定してるんだったら、「いらねーじゃんNO」って思う。publicにすれよそんなの。

あと、

private String aaaa;

とあった場合に、g/sは

public String getAaaa() {
    return aaaa;
}
public void setAaaa(String aaaa) {
    this.aaaa = aaaa;
}

って感じになるけど、これをJSPとかに出力するとき、

<html:text property="aaaa" ...(省略) />

って書くじゃん?
もうこれが意味不明。顔
なんて"getAaaa"とか"getAaaa()"じゃないわけ?わざわざ2つのファイルの変数の関連付けするのに別々の名前を設定しなくてはいけない理由は何なんですか?JSPから呼ばれるのはgetAaaa()だろ?


ネット上の色々な説明見ても「ほんとにそう思うの?」とか「意味不明」とか「そんなん滅多にねえよ」な理由付けがほとんど。
俺の結論は



g/sなんて不要。
仮に有用なケースがあったとしても局所的。かつ、それは必然とはいえない。
普通は無駄なので使いません。




です。

あと、g/sの書式は、昔少し触ったC#の方がはるかに優れている。
やるならせめてC#側の書式にしてほしい。




まだまだ書きたいことあるのでシリーズ物にする
好き勝手書くで! 偉い技術者の言う事なんか聞くもんかコノヤロウ!怒

次回は「JSPなんて大嫌いsubmitなんて大嫌い!全部Ajaxで通信だ!JSPも廃止!」。
乞うご期待?!