ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Lombok插件注解

2020-11-30 09:33:11  阅读:204  来源: 互联网

标签:插件 void Object private 为类 注解 Lombok public


在使用lombok注解的时候记得要导入lombok.jar包到工程,如果使用的是Maven的工程项目的话,要在其pom.xml中添加依赖如下:

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.16.8</version>

</dependency>

@AllArgsConstructor
会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验,
全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,参数的顺序与属性定义的顺序一致。
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@NoArgsConstructor:无参构造函数

@RequiredArgsConstructor
会生成一个包含常量(final),和标识了@NotNull的变量 的构造方法。

@Log :
@Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
@Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

@Data注解作用比较全,其包含注解的集合 @ToString, @EqualsAndHashCode,所有字段的 @Getter和所有非final字段的 @Setter, @RequiredArgsConstructor。其示例代码可以参考上面几个注解的组合
@Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
@Builder : 注解在类上, 为类提供一个内部的 Builder
@Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法
@NonNull注解能够为方法或构造函数的参数提供非空检查
@NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常, throw new NullPointException(参数名)

public void notNullExample(@NonNull String string) {

string.length();

}

//=>相当于

public void notNullExample(String string) {

if (string != null) {

string.length();

} else {

throw new NullPointerException("null");

}

}

@Cleanup注解能够自动释放资源
在这里插入图片描述
@Getter/@Setter注解可以针对类的属性字段自动生成Get/Set方法
在这里插入图片描述
@ToString注解,为使用该注解的类生成一个toString方法,默认的toString格式为:ClassName(fieldName= fieleValue ,fieldName1=fieleValue)

@ToString(callSuper=true,exclude="someExcludedField")

public class Demo extends Bar {

private boolean someBoolean = true;

private String someStringField;

private float someExcludedField;

}

//上面代码相当于如下:

public class Demo extends Bar {

private boolean someBoolean = true;

private String someStringField;

private float someExcludedField;

@ Override

public String toString() {

return "Foo(super=" + super.toString() +

", someBoolean=" + someBoolean +

", someStringField=" + someStringField + ")";

}

}

@EqualsAndHashCode注解,为使用该注解的类自动生成equals和hashCode方法。
在这里插入图片描述
@Synchronized注解类似Java中的Synchronized 关键字,但是可以隐藏同步锁

public class SynchronizedExample {

private final Object readLock = new Object();

@Synchronized

public static void hello() {

System.out.println("world");

}

@Synchronized("readLock")

public void foo() {

System.out.println("bar");

}

//上面代码相当于如下:

public class SynchronizedExample {

private static final Object $LOCK = new Object[0];

private final Object readLock = new Object();

public static void hello() {

synchronized($LOCK) {

System.out.println("world");

}

}

public void foo() {

synchronized(readLock) {

System.out.println("bar");

}

}

}

标签:插件,void,Object,private,为类,注解,Lombok,public
来源: https://blog.csdn.net/qq_42981242/article/details/110367119

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有