技術メモ、Tips、忘備録

技術系のメモ、試してみたこと、その他

最近思うけど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仕様なくらいなので今更どうすることもできないのですが

・免責事項

当方は、当記事にコンテンツを掲載するにあたって、その内容、機能等について細心の注意を払っておりますが、コンテンツの内容が正確であるかどうか、最新のものであるかどうか、安全なものであるか等について保証をするものではなく、何らの責任を負うものではありません。また、当方は通知することなく当記事に掲載した情報の訂正、修正、追加、中断、削除等をいつでも行うことができるものとします。また、当記事、またはコンテンツのご利用により、万一、ご利用者様に何らかの不都合や損害が発生したとしても、当方は何らの責任を負うものではありません。