最近思うけどjavaのsetterがvoidなのって失敗だよなぁ
getterに関して思うこともありますが、それはまたいつか
javaのsetterメソッドって、こんな感じで自クラスを返した方が良かったんじゃないか?というお話
class Main { public static void main(String[] args) throws Exception { Sub sub = new Sub() .setValue1("1") .setValue2("2"); } } class Sub{ private String value1; private String value2; public Sub setValue1(String value1) { this.value1 = value1; return this; } public Sub setValue2(String value2) { this.value2 = value2; return this; } }
そもそもsetterなのに自クラスを返すのは、メソッドの責任範囲がおかしいとか、
java Bean仕様に則ってないのでよくないとかいろいろあるとは思います。が、ですね
オブジェクト指向ってそもそも内包されているデータに対してメソッドで操作を行うものじゃないですか
だから、「setterを使った後は、今セットした値に対して、処理を行うメソッドを呼び出す」という操作は必ず発生すると思うのですね
逆に、setter呼んだのに何もしない、っていうのは無く、もしそんな状況があったとしたら多分設計がおかしいと思うのですよ
まあそんな根拠です。
setterはpublic void setXX()
っていうのはもうデファクトスタンダードですし、Bean仕様なくらいなので今更どうすることもできないのですが