别再写getter,setter方法了,用Lombok来简化你的代码吧
前言
在实际开发中,有些代码是重复的、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来简化你的代码吧的更多相关文章
- android studio: 快捷键生成getter/setter方法时自动加m的问题
平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题 ...
- 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...
- 写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name,
写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name 写一个 setter 方法用于完成 @property (nonatomi ...
- getter/setter方法
1.setter方法 作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值 命名规范: 必须是对象方法 返回值类型为void 方法名必须以set开头,而且后面跟上成员变量名去掉"_&q ...
- Eclipse 设置生成带有属性注释的getter/setter方法
1. 在开发中,一般类注释常注释在字段上面.但eclipse工具自动生成的getter和setter方法是没有注释的,而且还需要自己手动添加,这样比较麻烦.下面介绍如何通过修改eclipse的jar ...
- 自动生成getter,setter方法的插件lombok
1.在InteiliJ IDEA上安装lombok插件,并重启 . 2.在pom.xml文件中添加依赖 <dependency> <groupId>org.project ...
- 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法
现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...
- java中遍历类中的属性、调用getter&setter方法
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
- Java-Ide快速创建getter&setter方法
1.右键 选择Generate 2.创建 类的equals方法
随机推荐
- Jmeter_接口串联自动化测试_登录后充值获取cookie
1.登陆->充值->运行会报错 2,那如何解决这个问题呢,添加HTTP COokie管理器 另外一种方法,登录->提取正则表达式,充值->添加HTTP cookie管理器
- HTTPS 学习
问题 数字签名的作用是什么? 为什么 HTTPS 是安全的 CA存在的动机是什么 客户端的公钥的都是一致的吗? 概述 这一节我们将要讲HTTPS,为什么说HTTPS是安全的,而HTTP是不安全的呢,这 ...
- unittest---unittest错误截图
在做自动化的过程中,大多数执行者都不在旁边,那么如果用例失败了我们通常看报告上的失败信息,但是这样有时候可能不够清楚的判断到底哪里出了错误,我们还可以通过自动截图的功能,判断用例走到哪里出了错误. 截 ...
- laravel 动态属性
我们在 User 模型里定义了关联方法 followings() 关联关系定义好后,我们就可以通过访问 followings 属性直接获取到关注用户的 集合.这是 Laravel Eloquent 提 ...
- Vue入门学习总结一:Vue定义
Vue的功能是为视图提供响应的数据绑定及视图组件,Vue是数据驱动式的,不直接修改DOM而是直接操作数据实现对界面进行修改. 首先我们需要在script中定义一个Vue实例,定义方法如下: var v ...
- 什么是Rogue Histogram?
Rogue Histogram可以理解为AP的“流氓直方图”,这里大概记录了该AP附近的其他AP的信道和频宽. 例如如下图:可以通过show ap auto-rf 802.11a AP-name / ...
- IDEA中常用优化设置
1.设置鼠标悬浮提示 Editor->General 这里要勾选下,后面设置的是延迟时间 默认半秒:设置后,我们鼠标移动到类上看看: 2.显示方法分隔符 Editor->General - ...
- STC8
一 时钟: IRC:24MHZ;LSI:32.768KHZ;HSE:4~33MHZ,外设可分频 二 2种低功耗模式: IDLE:1.3MA@6MHZ,外设可唤醒. STOP: 三:ISP下载更新模式: ...
- Hive的mysql安装配置
一.MySQL的安装 Hive的数据,是存在HDFS里的.此外,hive有哪些数据库,每个数据库有哪些表,这样的信息称之为hive的元数据信息. 元数据信息不存在HDFS,而是存在关系型数据库里,hi ...
- python3.6.5修改print的颜色
开头部分:\033[显示方式;前景色;背景色m +想要输出的内容:\033[0m 注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,具体参数效果见下文,可以只写其中的某一个:参数 ...