java中的lombok_如何在Java中使用Lombok删除样板设置器吸气剂

java中的lombok

你好朋友,

一次又一次反对Java的观点之一是,我们必须写很多样板

我们简单的POJO类的setter和getter形式的代码,不必要地增加了 我们代码的长度。

为了解决这个问题,有一个名为Project Lombok的开源项目可以解决这个问题。

通过允许您只写一些注释,它将在.class中生成getter和setter。 是从Java文件生成的。

所以…

在本快速教程中,我们将看到如何使用Lombok库摆脱设置者和获取者,

我们需要在POJO类中编写仅具有属性而没有逻辑的类。

为了了解Lombok如何帮助我们,我们将这篇文章分为两个部分:

–创建没有Lombok的POJO并手动添加设置器获取器

–创建POJO并使用Lombok库添加getters setter

创建没有Lombok的POJO并手动添加设置器获取器

让我们为Employee创建具有以下几个属性的类(不带Lombok),并将其命名为“ EmployeeWithoutLombok”:

package com.blogspot.javasolutionsguide.model;
/*** @author JavaSolutionsGuide**/
public class EmployeeWithoutLombok {private int id;private String firstName;private String lastName;private int age;private String department;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getDepartment() {return department;}public void setDepartment(String department) {this.department = department;}
}

正如我们在上面看到的,我们必须为所有属性编写setter和getter。

现在要测试该类,让我们编写一个名称为“ TestEmployeeWithoutLombok”的测试类。

package com.blogspot.javasolutionsguide.lombokTest;
import com.blogspot.javasolutionsguide.model.EmployeeWithoutLombok;
/*** @author JavaSolutionsGuide**/
public class TestEmployeeWithoutLombok {/*** * @param args* */public static void main(String[] args) {//Test EmployeeWithoutLombokEmployeeWithoutLombok employeeWithoutLombok = new EmployeeWithoutLombok();employeeWithoutLombok.setFirstName("Gaurav");employeeWithoutLombok.setLastName("Bhardwaj");System.out.println("Employee First Name:"+employeeWithoutLombok.getFirstName() + "\n" + "Employee Last Name:"+employeeWithoutLombok.getLastName());}
}

输出:

员工名字:Gaurav

员工姓氏:Bhardwaj

因此,基本上我们在这里使用的是setter和getter,它们已在

“ EmployeeWithoutLombok”类。

创建POJO并使用Lombok库添加getters setter

要使用Lombok,我们需要:

–在我们的pom.xml中添加Lombok依赖项

–在我们的Eclipse中安装Lombok

–在我们的POJO上添加@ Getters,@ Setters批注

–创建一个Test类来测试设置者和获取者

在我们的pom.xml中添加Lombok依赖项

让我们首先在我们的Maven POM.xml中添加Lombok的依赖关系(请参阅下面XML中突出显示的部分)。

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.blogspot.javasolutionsguide</groupId><artifactId>lombakTest</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>lombakTest</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.4</version><scope>provided</scope></dependency></dependencies>
</project>

在我们的Eclipse中安装Lombok

lombok jar附带了一个安装程序。我们只需要转到拥有lombok jar的文件夹并运行

使用以下命令执行jar。

java -jar lombok-1.18.4.jar

一旦执行了以上命令,lombok将检测到我们机器上的所有IDE,就像我已经

蚀:

单击安装/更新,它将在Eclipse中安装Lombok。

我们可以转到About Eclipse部分,再次检查Eclipse是否启用了Lombok,并检查是否

已安装“ Lombok v1.18.4“ Enret Ferret”。 https://projectlombok.org/”

在我们的POJO上添加@ Getters,@ Setters批注

现在让我们用Lombok注释重写POJO:

package com.blogspot.javasolutionsguide.model;import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;/*** @author JavaSolutionsGuide**/
@Getter
@Setter
public class EmployeeWithLombok {private int id;private String firstName;private String lastName;private int age;private String department;
}

如您所见,我们在POJO类的顶部添加了@Getter和@Setter批注,

确保Lombok将在.class文件中添加setter和getter。

创建一个Test类来测试设置者和获取者

package com.blogspot.javasolutionsguide.lombokTest;import com.blogspot.javasolutionsguide.model.EmployeeWithLombok;/*** Main class to test Lombok.**/
public class TestEmployeeWithLombok 
{public static void main( String[] args ) {//Test EmployeeWithLombokEmployeeWithLombok employeeWithLombok = new EmployeeWithLombok();employeeWithLombok.setFirstName("Gaurav");employeeWithLombok.setLastName("Bhardwaj");System.out.println("Employee First Name:"+employeeWithLombok.getFirstName() + "\n" + "Employee Last name:"+employeeWithLombok.getLastName());}
}
Output :
Employee First Name:Gaurav
Employee Last name:Bhardwaj

摘要

因此,在本教程中,我们学习了如何使用Lombok库生成setter和getter,结果

变成更干净的代码。

请随时提出任何意见,问题,或与您认为有帮助的人分享。

翻译自: https://www.javacodegeeks.com/2019/08/lombok-remove-boilerplate-setters-getters-java.html

java中的lombok

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

super 和 this 关键字的比较+调用构造器(this)+动态绑定

【0】README 0.1&#xff09; 本文描述源代码均 转自 core java volume 1&#xff0c; 旨在加深对 super 和 this关键字 的用法比较&#xff1b; 0.2&#xff09; 最后还补充了 多态和动态绑定 的定义 以及对动态绑定进行了详细分析&#xff0c;这两个定义给的非常棒&#xf…

修改表格字体颜色_word排版应用:如何创建文本样式和表格样式

样式&#xff0c;大家应该不陌生&#xff0c;在Word中是一个非常强大的功能&#xff0c;运用得好&#xff0c;可以节省很多时间和精力。但如果你不会用&#xff0c;关键时刻可以把你急哭了&#xff01;在前面的“Word样式&#xff0c;简单又实用&#xff01;”和“Word样式也有…

java流式传输对象_Java性能:面向教学与流式传输

java流式传输对象在for循环中向上或向下计数是最有效的迭代方式吗&#xff1f; 有时答案既不可行。 阅读这篇文章&#xff0c;了解不同迭代品种的影响。 迭代性能 关于如何以高性能进行迭代有很多观点。 Java中的传统迭代方式是一个for循环&#xff0c;该循环从零开始&#xf…

vue框架项目部署到服务器_在浏览器中在线尝试无服务器框架项目!

vue框架项目部署到服务器无服务器框架是无服务器工具的一致领导者。 但是&#xff0c;没有简单的方法可以在线试用无服务器框架项目。 您确实需要一个体面的开发人员设置&#xff0c;并且需要一些工作来设置sls &#xff0c; npm等。 确切地说&#xff0c;您确实做到了 –直到…

用python连接数据库_用Python连接MySQL

MySQL是当下最流行的关系型数据库管理系统之一,在用Python爬取网络数据的过程中也经常需要用到MySQL,Python中pymysql库提供了连接MySQL的接口,为Python连接和操作MySQL提供了便利.一,安装pymysql库直接使用pip工具进行安装:pip install pymysql二,连接mysql首先导入第三方库,然…

树的预备知识

【0】README 0.1&#xff09; 本文总结于 数据结构与算法分析&#xff0c;旨在整理出 树的相关术语和概念&#xff08;哥子始终记不住树的高度和深度&#xff0c;记着记着就混淆了&#xff0c;哎&#xff0c;所以分享出来&#xff09;&#xff1b; 【1】树相关 1.1&#xff…

arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino

产品介绍&#xff1a;蓝牙4.0模块是专为智能无线数据传输而打造的。该模块遵循BT2.1EDR/3.0/4.0(BLE)蓝牙规范&#xff0c;支持SPP 蓝牙串口协议等。本模块集成了MCU 和蓝牙芯片&#xff0c;支持UART、SPI、I2C、I2S 等接口&#xff0c;包含4 个PWM 端口和6 个12bit ADC 通道&a…

后台审核管理 ergo_Kogito,ergo规则—第2部分:规则的全面执行模型

后台审核管理 ergo这是第二后 一系列更新的Kogito主动性和我们的努力&#xff0c;使Drools的云。 在本文中&#xff0c;我们将深入研究规则单元的详细信息&#xff0c;并向您展示为什么我们对它们感到兴奋。 规则的全包执行模型 如果您一直在仔细检查Drools手册&#xff0c;以…

不相交集ADT(联机算法 + 脱机算法)

【0】README 0.1&#xff09;本文总结于 数据结构与算法分析&#xff0c; 旨在分享 不相交集ADT的相关概念&#xff1b; 0.2&#xff09; 不相交集ADT 的知识涉及到&#xff1a; 等价关系、动态等价关系、不相交集ADT相关操作及其数据结构 &#xff0c;还有我们最后分享的 不…

win7无法连接打印机拒绝访问_Win7系统”windows无法连接到打印机拒绝访问“怎么办?通过创建local port端口连接来搞定...

随着电脑的使用率越来越高&#xff0c;我们有时候可能会遇到Win7系统”windows无法连接到打印机拒绝访问“的问题&#xff0c;要怎么处理呢&#xff1f;详细解决方法如下&#xff1a;故障现象&#xff1a;按照XP的方式添加打印机&#xff0c;总是会出现“windows无法连接到打印…

spring boot测试_测试Spring Boot有条件的合理方式

spring boot测试如果您或多或少有经验的Spring Boot用户&#xff0c;那么很幸运&#xff0c;在某些时候您可能需要遇到必须有条件地注入特定bean或配置的情况 。 它的机制是很好理解的 &#xff0c;但有时这样的测试条件下&#xff08;以及它们的组合&#xff09;可能会导致混乱…

不相交集的求并算法(按集合大小求并+按高度求并)

【0】README 0.1&#xff09;本文总结于 数据结构与算法分析&#xff0c; 但源代码均为原创&#xff0c;旨在实现 不相交集ADT的两个操作&#xff1a;合并集合union查找集合find&#xff1b; 0.2&#xff09; 不相交集ADT 的 Introduction &#xff0c; 参见 http://blog.csd…

及时复盘的好处_该如何复盘 先来说说复盘的好处: 复盘的好处简直太多了!就像你学习一样有一个总结的过程,复盘的最直接好处就是增强你的“股感”!在股市... - 雪球...

来源&#xff1a;雪球App&#xff0c;作者&#xff1a; 孜孜金融&#xff0c;(https://xueqiu.com/3493013654/135651359)先来说说复盘的好处&#xff1a;复盘的好处简直太多了&#xff01;就像你学习一样有一个总结的过程&#xff0c;复盘的最直接好处就是增强你的“股感”&am…

posman mocks_使用Mocks进行需求驱动的软件开发

posman mocksjmock作者撰写的有关模拟框架的优秀论文 。 本文写于18年前的2004年&#xff0c;但其中有许多构建可维护软件系统的技巧。 在这篇文章中&#xff0c;我将重点介绍本文中的关键思想&#xff0c;但建议您阅读本文以获取有关模拟和编程实践的重要思想。 模拟对象是测…

不相交集合求并的路径压缩

【0】README 0.1&#xff09;本文总结于 数据结构与算法分析&#xff0c; 源代码均为原创&#xff0c; 旨在实现 对不相交集合的路径压缩操作&#xff1b; 0.2&#xff09;对求并后的集合进行路径压缩&#xff0c;目的是降低集合&#xff08;合并树&#xff09;的深度&#x…

python 动态加载与静态加载_python中的元类、静态方法、类方法,动态添加方法...

首先介绍几个概念&#xff1a;1、#所谓的静态方法就是这个方法任何类都可以调用&#xff0c;程序一加载就存在的方法2、所谓的类方法就是这个类一加载就存在的方法&#xff0c;不用实例化这个类就已经存在的方法3、所谓的元类就是创建类的类元类&#xff1a; type我们知道对象是…

flutter调用api_如何在Flutter(REST API)中进行API调用

flutter调用api在本文中&#xff0c;我们将看一下如何快速进行API调用并使用简单的REST API。 在这里查看我在Flutter上的其他一些帖子&#xff1a; Flutter vs React Native 了解Flutter中的BLoC架构 &#xff08;强烈建议&#xff09; 在Flutter中构建ListView&#xff0…

java重载与重写的区别+重写父类equals方法的完美实现

【0】README 0.1&#xff09; 本文章节【1】和【2】的内容转自 http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html &#xff1b; 旨在区分重载与重写以及他们的相关概念&#xff1b; 0.2&#xff09; 本文章节【3】的内容转自 http://blog.csdn.net/pacoson…

checkpoint_通过Main的Checkpoint Restore加快Java启动速度

checkpointJava虚拟机为已编译为字节码 &#xff08;但不一定是用Java编写&#xff09;的应用程序提供了托管运行时环境。 与为特定平台静态编译的代码相比&#xff0c;这为应用程序开发人员提供了许多好处&#xff0c;并且通常可以提高性能。 JVM通过垃圾回收器 &#xff08;G…

泛型数组列表ArrayList

【0】README 0.1&#xff09; 本文描述源代码均 转自 core java volume 1&#xff0c; 旨在理清 java 中的 数组列表 ArrayList&#xff1b; 【2】数组列表 ArrayList 2.1&#xff09;ArrayList&#xff1a; ArrayList 具有自动调节数组容量的功能&#xff0c; 而不需要为此…