用Lombok甩掉get()和set()

简介: 代码里面,见到的最多的就是实体Dao(Domain)了。这里的实体主要分为2种,一种是数据库访问层的实体Domain,直接用来定义某个数据库表的实体,里面定义的每个字段都跟数据库表中的每个字段一一对应。也是系统跟数据交互而用来存储数据的“介质”。另一种是代码里为了方便,把多个参数或变量定义为一个实体,一般用来:方法传参、接口对外对象、设计模式等。

01前言


代码里面,见到的最多的就是实体Dao(Domain)了。这里的实体主要分为2种,一种是数据库访问层的实体Domain,直接用来定义某个数据库表的实体,里面定义的每个字段都跟数据库表中的每个字段一一对应。也是系统跟数据交互而用来存储数据的“介质”。另一种是代码里为了方便,把多个参数或变量定义为一个实体,一般用来:方法传参、接口对外对象、设计模式等。



02传统set和get方法


既然是实体,里面少不了要定义变量,而实体变量的值的设置和获取,由set()和get()方法实现。标准set和get方法定义如下:


public class peopleDao {   private Long id;
  private Integer age;
  private String name;
  private String sex;
  public void setId(Long id){     this.id = id;  }
  public Long getId(){     return id;  }
  public void setAge(Integer age){     this.age = age;  }
  public Integer getAge(){     return age;  }
  public void setId(String name){     this.name = name;  }
  public String getName(){     return name;  }
  public void setId(String sex){     this.sex = sex;  }
  public String getSex(){     return sex;  }}

方法setXxx()参数为该变量的值,即我们在给该变量定义值的时候设置的。

方法getXxx()无参,直接返回该变量的在主内存的值。

可以看到满篇的set和get方法,如果一个实体有20个变量或以上,那么整个class看起来就会非常长而且臃肿。既没有技术含量,又影响着代码的美观。要增加或修改的时候变得麻烦和易错。而且set和get方法,也存在线程同步问题...


03使用lombok


Lombok是一种自动接通你的编辑器和构建工具的一个Java库。lombok其实就是帮助我们编写getter或者equals方法的一个“工具”。

3.1 lombok的使用首先引入maven依赖


<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.18</version>
      <scope>provided</scope>
</dependency>


3.2 使用了lombok的实体


@Getter@Setterpublic class peopleDao {
  private Long id;
  private Integer age;
  private String name;
  private String sex;  }

看到没有,使用了lombok的实体,变得非常简洁和美观。而且执行起来效率变得非常快,这是因为lombok库直接调用了java源码类库而实现,具体可以详看lombok源码实现。

2c973bf9233447f7f0fcdce03ec3c8e1_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

只是通过简单的@Getter @Setter 注解便可以实现变量的set和get方法,除此外还有@ToString、@NoArgsConstructor (构造函数)等,诸多注解供你使用,为你节省大量宝贵时间和代码提高开发效率。


相关文章
|
1月前
|
缓存 监控 Java
ThreadLocal 源码解析get(),set(), remove()用不好容易内存泄漏
ThreadLocal 源码解析get(),set(), remove()用不好容易内存泄漏
26 1
|
4月前
idea快速生成get set 构造方法的快捷键
idea快速生成get set 构造方法的快捷键
64 0
|
5月前
|
存储 NoSQL Ubuntu
在Ubuntu上安装Redis并学习使用get、set和keys命令
在Ubuntu上安装Redis并学习使用get、set和keys命令
|
9月前
|
JavaScript
TypeScript get 与 set 的使用
TypeScript get 与 set 的使用
123 0
|
14天前
|
druid Java
Error attempting to get column ‘createTime‘ from result set的异常
Error attempting to get column ‘createTime‘ from result set的异常
|
1月前
|
XML Java 数据库连接
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
mybatis和mybatiplus中Error attempting to get column ‘xx‘ from result set
28 0
|
7月前
|
Java
Java-----抽象类为什么不能实例化?抽象方法为什么不能被static修饰?set和get方法的使用方法
Java-----抽象类为什么不能实例化?抽象方法为什么不能被static修饰?set和get方法的使用方法
|
4月前
|
存储 监控 NoSQL
搞定 Redis 数据存储原理,别只会 set、get 了
搞定 Redis 数据存储原理,别只会 set、get 了
45 0
|
4月前
|
监控 JavaScript 前端开发
【面试题】vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set
【面试题】vue2双向绑定原理:深入响应式原理defineProperty、watcher、get、set
|
9月前
|
SQL 关系型数据库 MySQL
使用IntelliJ IDEA连接数据库,快速创建实体类对象,自动生成get,set,toString方法以及无参有参构造器
使用IntelliJ IDEA连接数据库,快速创建实体类对象,自动生成get,set,toString方法以及无参有参构造器