前言

在实际开发中,有些代码是重复的、IDE一键生成的,不写不行,写了又觉得代码太臃肿,不美观。如果你也有这种体会,那么,请使用Lombok插件吧,真的非常好用。Lombok的使用也非常简单,都是各种各样的注解。

引入依赖

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

IDEA安装Lombok插件

单单引入Lombok的包还是不够的,ide会识别不到,会提示你getter,setter等方法没有定义。所以,需要先安装Lombok插件(eclipse,vs code等可以自行百度安装)

点击 File -> setting -> plugins,搜索Lombok安装即可,安装完后重启IDEA。

Lombok常用注解

1.Data注解

该注解作用在类上,默认为类生成get 、 set、equals、hashCode、toString 等方法。定义一个Happyjava类如下:

@Data
public class Happyjava {

private String username;

private String pwd;

}

使用了Data注解标识在类上,我们可以通过ide的自动补全功能查看Data注解为我们实现了哪些方法:

可以看到,get 、 set、equals、hashCode、toString 这些pojo必备的方法都已经实现了。

2.Setter注解

有些类不需要getter方法,那么我们可以单独使用setter注解来标识。

通过ide的自动补全功能,可以看到为我们实现了getter方法

3.Getter注解

有些类只提供getter返回,不允许外部设置属性值,这时候可以使用getter注解。

@Getter
public class Happyjava {

private String username;

private String pwd;

}

4.AllArgsConstructor注解

该注解为我们提供了一个全参的构造器。

通过反编译查看:

为我们创建了全参的构造方法

5.NoArgsConstructor注解

如果我们使用了AllArgsConstructor注解,又想拥有一个无参构造方法,那就使用NoArgsConstructor注解吧。

通过反编译查看

6.EqualsAndHashCode注解

为我们实现了equals、canEqual、hashCode 方法。

7.Cleanup注解

清理注解,该注解放在需要关闭的变量前面,比如InpuStream等。默认调用close() 方法,如果需要调用其它的关闭方法,需要手动声明:@Cleanup(“methodName”) 。还有一点需要注意的是,如果close方法抛出受检异常,在编译阶段会报错:

我们可以手动把这个异常抛出

通过反编译查看:

这个注解我个人是不太喜欢用的,个人更推荐大家使用try-with-resources的方式来关闭资源吧。如下:

8.Builder注解

该注解是本人最喜欢的注解之一,采用Builder的模式构造实例,是我非常喜欢的实例化类的方法。

通过反编译查看:

然后我们就可以愉快的通过Builder来构造实例啦

public static void main(String[] args) {
Happyjava happyjava = Happyjava.builder()
.username("happyjava")
.pwd("123456")
.build();
}

9.Slf4j注解

这个注解是我使用的最多的注解,使用该注解,就不需要再手动的获取Slf4j实例啦,直接log调用即可。

@Slf4j
public class Main {
public static void main(String[] args) {
log.info("happyjava 好好学习");
}
}

通过反编译查看:

Slf4j注解注解,基本上是我开发过程中每个类都会使用的(除了pojo类啦)

总结

以上这些是本人在开发中比较常用到的注解,当然,Lombok的注解可不止这些,只是其他的我不常用罢了。比如Synchronized注解也是不错的,但是我就不太喜欢用。

别再写getter,setter方法了,用Lombok来简化你的代码吧的更多相关文章

  1. android studio: 快捷键生成getter/setter方法时自动加m的问题

    平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题 ...

  2. 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java

    import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...

  3. 写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name,

    写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name 写一个 setter 方法用于完成 @property (nonatomi ...

  4. getter/setter方法

    1.setter方法 作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值 命名规范: 必须是对象方法 返回值类型为void 方法名必须以set开头,而且后面跟上成员变量名去掉"_&q ...

  5. Eclipse 设置生成带有属性注释的getter/setter方法

    1.  在开发中,一般类注释常注释在字段上面.但eclipse工具自动生成的getter和setter方法是没有注释的,而且还需要自己手动添加,这样比较麻烦.下面介绍如何通过修改eclipse的jar ...

  6. 自动生成getter,setter方法的插件lombok

    1.在InteiliJ IDEA上安装lombok插件,并重启 . 2.在pom.xml文件中添加依赖 <dependency>    <groupId>org.project ...

  7. 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法

    现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...

  8. java中遍历类中的属性、调用getter&setter方法

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  9. Java-Ide快速创建getter&setter方法

    1.右键 选择Generate 2.创建 类的equals方法

随机推荐

  1. Windows上面搭建FlutterAndroid运行环境

    1.下载安装JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.配置J ...

  2. vim 一些操作

    在ESC下 gg # 光标跳到开头 dG # 删除光标后的数据 dd # 删除光标所在行 gg dG # 删除全部 (光标跳到开头&删除光标后的数据) x # 删除当前光标下的字符 i # 编 ...

  3. python网络爬虫之解析网页的XPath(爬取Path职位信息)[三]

    目录 前言 XPath的使用方法 XPath爬取数据 后言 @(目录) 前言 本章同样是解析网页,不过使用的解析技术为XPath. 相对于之前的BeautifulSoup,我感觉还行,也是一个比较常用 ...

  4. POJ2516 Minimum Cost

    亲爱的,一个货物销售者,现在遇到了一个大问题,他需要你的帮助.在他的销售区域有 N 个店主(从 1 到 N)向他储存货物,Dearboy 有M 个供应点(从 1 到 M),每个供应点提供 K 种不同的 ...

  5. DOCK-SWARM

    服务原理: 创建集群:建立ingress网络,网关xxxxx.xxx.xxx.1 管理节点:docker swarm init --advertise-addr 192.168.4.119 工作节点: ...

  6. Python语言——map/reduce的用法

    Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clus ...

  7. IDEA & MAVEN配置代理(没用)

    1. IDEA配置代理: 2. maven配置代理: 在maven中配置代理,主要配置编辑~/.m2/settings.xml文件的<proxies> socks5类型: <id&g ...

  8. Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点, 这一行就会空出很多空格出来

    一.问题描述: Android的TextView在显示文字的时候,如果有段中文有英文,有中文,有中文标点符号,你会发现,当要换行的时候遇到中文标点, 这一行就会空出很多空格出来.原因是: 1) Tex ...

  9. 请高手解释这个C#程序,其中ServiceBase是windows服务基类,SmsService是

    请高手解释这个C#程序,其中ServiceBase是windows服务基类,SmsService是 ServiceBase的子类. static void Main() { ServiceBase[] ...

  10. 设计模式课程 设计模式精讲 3-8 迪米法特原则讲解及Coding

    1 课程讲解 1.1 定义 1.2 特质 1.3 重点 2 代码演练 2.1 反例 2.2 正例 1 课程讲解 1.1 定义 定义:一个对象应该对其他对象保持最少的了解.又叫最少知道原则. 1.2 特 ...