如何在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依赖项

–在我们的日食中安装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>

在我们的日食中安装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

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

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

相关文章

Dev-C++使用技巧1(亲测)(超详细)(安装过程、修改语言、新建项目、配置C++ 11、开启警告信息和调试信息)

前言 Dev-C是一款内存占用小&#xff0c;支持C/C&#xff0c;支持调试&#xff0c;可以一键编译、运行的IDE&#xff08;集成开发环境&#xff09;。 下载链接&#xff1a;Dev-C - Download 如果上面那个不行或者下载比较慢&#xff0c;可以点链接: Dev-Cpp 提取码: xaby 。 …

从网络虚拟化,看智能网卡发展史

5G的到来无疑将加速网络虚拟化的进程&#xff0c;在电信领域&#xff0c;网络虚拟化不仅在核心网&#xff0c;也在网络的边缘。但是&#xff0c;仅仅通过软件解决方案不能提供足够的网络可靠性和服务质量&#xff0c;而具有高级可编程功能智能网卡&#xff08;Smart NIC&#x…

Dev-C++使用技巧2(亲测)(更改字体和颜色、自动保存、快捷键选项、一键排版)

更改字体和颜色 顶部菜单栏->工具->编辑器选项。 更改字体 当前选项卡->显示&#xff0c;字体word有的基本都有&#xff0c;华文楷体、宋体&#xff0c;幼圆之类。西文字体默认字体Consloas就不错&#xff0c;中文的话幼圆、新宋体都挺不错。 幼圆效果&#xff1…

深入浅出全面解析RDMA

RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问&#xff0c;就是为了解决网络传输中客户端与服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机&#xff0c;无需双方操作系统的介入。这允许高吞吐、低延迟的网络通信&#xff0c;…

hypervisor介绍

hypervisor&#xff1a;一种运行在物理服务器和操作系统之间的中间层软件&#xff0c;可以允许多个操作系统和应用共享一套基础物理硬件。可以将hypervisor看做是虚拟环境中的“元”操作系统&#xff0c;可以协调访问服务器上的所有物理设备和虚拟机&#xff0c;所以又称为虚拟…

Selenium WebDriver中的TestNG侦听器及示例

Java提供了不同的接口&#xff0c;使您可以修改TestNG行为。 这些接口在Selenium WebDriver中进一步称为TestNG侦听器。 TestNG Listeners还允许您根据项目要求自定义测试日志或报告。 Selenium WebDriver中的TestNG侦听器是侦听某些事件并跟踪测试执行情况的模块&#xff0c;…

Ubantu键盘快捷键

Ubuntu系统 长按"Win"键可打开快捷键提示界面

win10安装python详细过程

关于python的安装 一切语言皆为工具接下来咱们就开始吧一切语言皆为工具 既然你决定安装它&#xff0c;那就已经告知自己要掌握这门工具&#xff0c; 但是有一定你一定要铭记于心那就是&#xff1a; python 是个工具时刻想着如何用它解决你的问题【哪怕是一个简单的想法】 接…

第18次csp认证 201912-1 报数(C++)

题目 分析 需要跳过的包括&#xff1a;7的倍数和包括7的数。跳过的同时n要加一&#xff08;总的报n个数&#xff0c;跳过的不算&#xff09;。声明一个全局数组count[4]方法1&#xff1a;i1开始到n&#xff0c;把输入的i转化为字符串&#xff0c;然后在字符串里找’7’或者7的…

C++ vector求均值和方差

1 定义 &#xff08;1&#xff09;均值 &#xff08;2&#xff09;方差 &#xff08;3&#xff09;标准差 2 代码实现 //std::vector< double> 或者 std::vector< int> 类型变量求均值和方差 #include <numeric> #include <iostream> #include <m…

第18次csp认证 201912-2 回收站选址(C++)

题目 分析 每一个垃圾堆放处都可能是回收站&#xff0c;所以两轮循环&#xff0c;找出所有可以成为回收站的坐标。再两轮循环&#xff0c;确定所有回收站的得分最后输出每种得分的回收站个数 AC代码 #include <iostream> #include<string> using namespace std;…

Python——列表中存放字典遇到的问题

Python——列表中存放字典遇到的问题 使用列表、字典之间的相互嵌套可以很容易的实现json数据格式&#xff0c;但是昨天在往列表中装入字典时遇到了问题&#xff1a; 直接使用append方法将字典添加到列表中&#xff0c;如果需要更改字典中的数据&#xff0c;那么列表中的内容也…

pat 乙级 1036 跟奥巴马一起编程(C++)

题目 美国总统奥巴马不仅呼吁所有人都学习编程&#xff0c;甚至以身作则编写代码&#xff0c;成为美国历史上首位编写计算机代码的总统。2014 年底&#xff0c;为庆祝“计算机科学教育周”正式启动&#xff0c;奥巴马编写了很简单的计算机代码&#xff1a;在屏幕上画一个正方形…

Sublime删除所有包含特定值的行

1、选中包含的字符 2、全部选中包含这个字符&#xff1a; ALTF3 3、全选整行&#xff1a; 台式机&#xff1a;Shiftend 笔记本&#xff1a;ShiftFnend 4、删除所有数据&#xff1a; DELETE 5、删除所有空白行&#xff1a; 使用快捷方式直接删除空行&#xff0c;前提是进行如下…

Excel完成将多行多列数据转化为一列

想要把Excel的数据用Word转成一行。那么第一步当然是将excel中的数据先复制下啦&#xff0c;复制好了之后打开word&#xff0c;然后进行粘贴&#xff0c;注意这里要选择“只保留文本”哦。 接下来我们要用鼠标选中每一行的两个数据中间保留的空格&#xff0c;就像小编这样哦…

Kogito,ergo规则—第2部分:规则的全面执行模型

这是第二后 一系列更新的Kogito主动性和我们的努力&#xff0c;使Drools的云。 在这篇文章中&#xff0c;我们将深入研究规则单元的细节&#xff0c;并向您展示为什么我们对它们感到兴奋。 规则的全包执行模型 如果您一直在仔细检查Drools手册&#xff0c;以在每个最新发行版中…

使用Angular,Ionic 4和Spring Boot构建移动应用

朋友不允许朋友写用户身份验证。 厌倦了管理自己的用户&#xff1f; 立即尝试Okta的API和Java SDK。 在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 我是Ionic的忠实粉丝。 几年前&#xff0c;我基于AngularJS开始使用它。 作为开发人员&#…

1039 到底买不买(pat乙级、C++)

题目 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串&#xff0c;但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下&#xff0c;某串珠子里是否包含了全部自己想要的珠子&#xff1f;如果是&#xff0c;那么告诉她有多少多余的珠子&#xff1…

使用Selenium Webdriver进行全屏截图

在任何网页测试人员中&#xff0c;执行效果最好的操作之一就是对网页进行截图。 每当测试人员发现并报告错误时&#xff0c;如果不支持该问题的屏幕截图甚至视频&#xff0c;就不会认真对待该错误。 不论您进行的测试类型是什么&#xff0c;包括硒自动化测试&#xff0c;都是如…

c++中 int, long long, double 等数据类型的长度及范围整理

先附上一个比较直观的表&#xff0c;长度表示字节: byte: 字节 bit: 位 1. 短整型short&#xff1a; 所占内存大小&#xff1a;2byte16bit&#xff1b; 所能表示范围&#xff1a;-32768~32767&#xff1b;(即-2^15~2^15-1) 2. 整型int&#xff1a; 所占内存大小&#xff1a;4…