内容简介:lombok的基本使用教程
lombok是一个编译级别的插件,它可以在项目编译的时候生成一些代码。在很多 工具 类的项目中都有这个功能。比如dagger。
通俗的说,lombok可以通过注解来标示生成 getter
settter
等代码。我们自然可以通过编译器比如IDEA的 Generate
生成,为啥要用这个?
在项目开发阶段,一个class的属性是一直变化的,今天可能增加一个字段,明天可能删除一个字段。每次变化都需要修改对应的模板代码。另外,有的class的字段超级多,多到一眼看不完。如果加上模板代码,更难一眼看出来。更有甚者,由于字段太多,想要使用builder来创建。手动创建builder和字段和原来的类夹杂在一起,看起来真的难受。lombok的 @Builder
即可解决这个问题。
引入
引入就是加入 lombok
的jar包。
在maven中
直接加入依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> </dependency>
在gradle中
这里比较麻烦,需要添加一个编译时生成代码的插件。gradle里有几个这样的插件。但为了简化过程,lombok提供了新插件。
首先,添加一个plugin
plugins { id 'io.franzbecker.gradle-lombok' version '1.11' }
然后,就可以了。还可以配置lombok的版本:
lombok { // optional: values below are the defaults version = "1.16.20" sha256 = "" }
IntelIJ IDEA 插件
在IDEA里使用需要添加一个插件。在插件里搜索lombok,安装,重启。
IDEA里需要在设置中启用annotation processors。
基本用法
Geeter Setter
最简单的,最常用的,最直观的使用就是getter setter方法。
package com.test.lombok; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; import java.util.Date; /** * Created by Ryan Miao on 1/18/18. */ public class GetterSetterExample { /** * Age of the person. Water is wet. * * @param age New value for this person's age. Sky is blue. * @return The current value of this person's age. Circles are round. */ @Getter @Setter private int age = 10; @Getter @Setter private boolean active; @Getter @Setter private Boolean none; @Getter @Setter private Date date; /** * Name of the person. * -- SETTER -- * Changes the name of this person. * * @param name The new value. */ @Setter(AccessLevel.PROTECTED) private String name; @Override public String toString() { return String.format("%s (age: %d)", name, age); } public static void main(String[] args) { GetterSetterExample example = new GetterSetterExample(); example.setActive(true); example.setAge(123); example.setDate(new Date()); example.setName("abc"); example.setNone(false); Date date = example.getDate(); Boolean none = example.getNone(); boolean active = example.isActive(); } }
简单使用没有问题,深入一点可以看到有些特殊设定。比如javadoc.
-
Getter
声明创建getter方法; -
Setter
声明创建setter方法; -
@Setter(AccessLevel.PROTECTED)
可以添加参数,指定权限为私有; - Attention!关于
boolean
的set前缀都是set,但getter不同,小写的boolean
,即基本类型,前缀是is
;Boolean
,即包装类型,前缀是get
;
编译后的结果如下:
点击显/隐内容
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package com.test.lombok; import java.util.Date; public class GetterSetterExample { private int age = 10; private boolean active; private Boolean none; private Date date; private String name; public GetterSetterExample() { } public String toString() { return String.format("%s (age: %d)", this.name, this.age); } public static void main(String[] args) { GetterSetterExample example = new GetterSetterExample(); example.setActive(true); example.setAge(123); example.setDate(new Date()); example.setName("abc"); example.setNone(false); Date date = example.getDate(); Boolean none = example.getNone(); boolean active = example.isActive(); } public int getAge() { return this.age; } public void setAge(int age) { this.age = age; } public boolean isActive() { return this.active; } public void setActive(boolean active) { this.active = active; } public Boolean getNone() { return this.none; } public void setNone(Boolean none) { this.none = none; } public Date getDate() { return this.date; } public void setDate(Date date) { this.date = date; } protected void setName(String name) { this.name = name; } }
以上所述就是小编给大家介绍的《lombok的基本使用教程》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。