ロンボク:setとgetメソッドをもう書かない

前書き

Javaプロジェクトには、POJOのgetter / setter / toString、例外処理、I / Oストリームのクローズ操作など、あまりにも多くの不親切なコードがあります。これらのボイラープレートコードには技術的な内容がなく、コードの美しさに影響を与えます。Lombok生まれた。

応用

ステップ1:プラグインをインストールし、IDEAを再起動します

1.进入Settings设置界面,安装Lombok插件(重启IDEA)
2.Settings设置界面,开启 AnnocationProcessors(让Lombok注解在编译阶段起到作用)

ステップ2:Jarパッケージを参照する

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
    <scope>provided</scope>//只在编译阶段生效,不需要打入包中
</dependency>

原理

Java 6はjavacが「JSR 269 Pluggable Annotation Processing API」仕様をサポートしているため、プログラムがAPIを実装している限り、javacの実行中に呼び出すことができます。
ロンボクは「JSR 269 API」を実装したプログラムです。

処理する

1. javac对源代码进行分析,生成一棵抽象语法树(AST)

2. javac编译过程中调用实现了JSR 269的Lombok程序

3. 此时Lombok就对第一步骤得到的AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点

4. javac使用修改后的抽象语法树(AST)生成字节码文件

一般的なメモ

@Data
所有属性的get和set方法
toString 方法
hashCode方法
equals方法

@Getter
@Setter
作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法,可以设定访问权限及是否懒加载等。

@EqualsAndHashCode:作用于类覆盖默认的equals和hashCode方法

@NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。

@NoArgsConstructor:生成无参构造器

@AllArgsConstructor:生成全参构造器

@RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;

@ToString(of={"name","phone"},exclude={"age"})
作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。

@Builder:作用于类上,将类转变为建造者模式

@Log:作用于类上,生成日志变量。针对不同的日志实现产品,有不同的注解

場合

@Data
@NoArgsConstructor(staticName = "of",access = AccessLevel.PRIVATE)
@AllArgsConstructor
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
@Setter(value = AccessLevel.PUBLIC)
@Getter(value = AccessLevel.PUBLIC)

public class User {
    @NonNull
    private Long id;//用户表

    private Long roleId;//角色id

    private String userName;//账号

    private String passWord;//密码
}

質問や意見がありましたら、メッセージを残して一緒に交換してください。ブロガーは、それを見るとすぐに返信します...

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/mrhs_dhls/article/details/106057758