あなたはまだnewの相手ですか?lombokのBuilderは知っていますか?

4036 ワード

前言
コードを書きます.オブジェクトを作成するにはnewを使用します.オブジェクトに属性がある場合はsetメソッドを使用してコピーします.たとえば、次のようにします.
Student student = new Student();
student.setName("zhangsan");
student.setAge(18);
...

これは可能ですが、オブジェクトのプロパティ値がたくさんあれば?考えてみれば、これらのコピーされたコードには多くの属性があり、100行を書くのは面倒です.
どんな方法で簡単にできますか?
lombok了解
lombokはみんなよく知られていませんね.このプラグインはgetterやsetterの方法、構造方法など、いくつかの方法を実現するのに役立ちました.
lombokの導入:
<dependency> 
	<groupId>org.projectlombok</groupId> 
	<artifactId>lombok</artifactId> 
</dependency>

その中でlombokには@Builderという注釈があります.この注釈はnewオブジェクトを助けることができます.具体的にはどう使いますか.
Student.builder()
               .sno( "001" )
               .sname( "admin" )
               .sage( 18 )
               .sphone( "110" )
               .build();

最後にbuild()があることを覚えています.
簡単ではないでしょうか.では、デフォルト値があります.Builderにフィールドのデフォルト値を追加するにはどうすればいいですか.
質問1:ここで質問がありますので、Builderを使用すると、フィールドでデフォルト値を与えるのは無効で、このクラスを再起動するしかありませんか?
解決策:lombokには@Builder.Defaultの注釈宣言があり、注釈はデフォルト値が必要なフィールドでよい.
余談
lombokは実はとてもよく使われていますが、もしあなたの会社がlombokを使うことを統一的に規定していなければ、マイクロサービスの間のインタラクションに問題があるかもしれません.これはまだよく分かりませんが、lombokを使うことをお勧めします.
もしあなたの会社がlombokを使っていないならば、lombokを使うことをお勧めしていません.簡単な付与オブジェクトの属性を実現するのも簡単です.jdk 8の汎用Builderは理解できます.この方式は、元のクラスを改造する必要はなく、lombokプラグインのサポートは必要ありません.使うなら具体的にどう使うか調べてみましょう!