Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法

pom依赖:

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
   <version>1.18.2</version>
</dependency>

下面只是介绍了几个常用的注解,更多的请参见https://projectlombok.org/features/index.html

@Getter/@Setter

可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

@EqualsAndHashCode

默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。

@ToString

生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

@NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor

无参构造器、部分参数构造器、全参构造器,当我们需要重载多个构造器的时候,Lombok就无能为力了。

@Data

@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,我们使用这个注解就足够了

使用示例 (以下5个注解,可以只使用@Data注解代替):

@Getter
@Setter
@ToString
@NoArgsConstructor
@EqualsAndHashCode
public class UserEntity { private String id; private String lastName; private String email; private Integer age; }

@Builder 

优雅的对属性赋值,对外保持private setter

@Getter
@Builder(toBuilder = true)
public class XwjUser implements Serializable { private static final long serialVersionUID = 1L; private int id; private String message; private Date sendTime; }
public static void main(String[] args) {
// @Builder注解赋值新对象
XwjUser user = XwjUser.builder().id().sendTime(new Date()).message("hahah").build();
System.out.println(user.toString()); // 修改实体,要求实体上添加@Builder(toBuilder=true)
user = user.toBuilder().id().build();
System.out.println(user.toString());
}

注意:在使用@Builder(toBuilder=true)的时候,得配合@AllArgsConstructor一起使用

java之Lombok的更多相关文章

  1. java关于lombok(包括父类参数)

    java关于lombok对bean对象进行自动设置 使用说明 使用方式 注释类型 @NonNull @Data(常用) @NoArgsConstructor(常用)/@RequiredArgsCons ...

  2. Java中lombok @Builder注解使用详解(十八)

    Lombok大家都知道,在使用POJO过程中,它给我们带来了很多便利,省下大量写get.set方法.构造器.equal.toString方法的时间.除此之外,通过@Builder注解,lombok还可 ...

  3. Java代码简化神器-Lombok

    一.背景 前段时间在开源社区中发现了一个比较牛逼的简化Java代码的神器-Lombok,接着自己写了demo进行测试和练习,感觉真的很不错,特此分享给需要的小伙伴们~ 二.开发之前的准备 1.lomb ...

  4. Java开发速度神器Lombok,Eclipse端安装使用教程

    一.Lombok简介 Lombok是一个代码生成器,可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法. 使用 ...

  5. Java上使用Lombok插件简化Getter、Setter方法

    Maven引入依赖: <dependencies> <dependency> <groupId>org.projectlombok</groupId> ...

  6. Java 开发之 Lombok 必知必会

    转载链接地址:https://juejin.im/post/5cf3edf7e51d454f71439c79 1. 前言 在目前众多编程语言中,Java 语言的表现还是抢眼,不论是企业级服务端开发,还 ...

  7. 🏆【Java技术专区】「开发实战专题」Lombok插件开发实践必知必会操作!

    前言 在目前众多编程语言中,Java 语言的表现还是抢眼,不论是企业级服务端开发,还是 Andorid 客户端开发,都是作为开发语言的首选,甚至在大数据开发领域,Java 语言也能占有一席之地,如Ha ...

  8. (4)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Cloud开发环境的准备和Lombok安装步骤

    ​ 开发环境的准备主要涉及三个方面:JDK.Maven.Spring Tools 4 for Eclipse. 1.JDK JDK 的版本用 1.8 即可,环境变量大家自行去配置.配置好环境变量,在命 ...

  9. Java测试开发--sts安装Lombok(七)

    1.sts安装Lombok的步骤: 下载最新的lombok.jar包,进入cmd窗口,切到Lombok下载的目录,运行命令: java -jar lombok.jar,会出现如下界面: 已经默认选好了 ...

随机推荐

  1. 在vs 调试进程中找不到 w3wp.exe 进程

    问题如图所示: 解决办法: 1. 启动iis(internet information services)服务. 2. 打开左侧网站列表=> 右键点击自己配置的网站 => 点击管理网站 = ...

  2. 程序媛计划——python中级课时1

    class1 异常处理 #python会把标准输入的内容当作字符串处理,即使输入的是数字3也会转化为字符串’3’. n1 = raw_input() n2 = raw_input() print n1 ...

  3. 给XCode安装Alcatraz(包管理工具)!!

    Alcatraz官方描述:  Alcatraz is an open-source package manager for Xcode. It lets you discover and instal ...

  4. Xcode的多种Build Configuration

    一: 建多个Configuration的目的. 多套域名打包. 1 开发时的域名. 2 内测时的域名. 3 公测时的域名. 4 企业版的域名. 5 APP Store的域名. 通过注释的方式,容易出错 ...

  5. Web安全学习图径——系列课程推荐

    本文作者:i春秋作家 大哥哥团长 说到Web安全必须要了解Web方面的一些基础知识做为铺垫的去的去学习这门技术,因为不是人人都可以直接先渗透在进行编程等方面学习的.所以为了更好的入门的Web安全必须要 ...

  6. mongodb因非法关闭导致无法启动的解决方案

    mongodb因非法关闭导致无法启动的解决方案 1.删除数据库目录的.lock文件 2.输入命令 mongod --repair 3.重启

  7. android应用程序的混淆打包

    android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...

  8. 导数、多元函数、梯度、链式法则及 BP 神经网络

    一元函数的导数 对于函数\(y=f(x)\),导数可记做\(f'(x_0)\).\(y'|x=x_0\)或\(\frac{dy}{dx}|x=x_0 \).定义如下: \[f'(x_0) = \lim ...

  9. Centos下用yum命令按照jdk

    一.查看是否已经安装了JDK #查看本机是否已经安装了jdk $ sudo yum list installed | grep java java--openjdk.x86_64 :.el7_6 @u ...

  10. 解决ASP.NET MVC 下使用SQLite 报no such table的问题

    观察后发现项目中数据库的存放位置不正确. Web项目添加到App_Data文件夹下, 文件始终不复制 Web.Config文件下的连接字符串 <add name="SQLiteconn ...