原文地址见: Github Wiki
1.安装插件
zip 包安装
从最新的 Release 页下载 zip 包,然后打开 IDEA,进入 Settings --> Plugins --> 小齿轮 --> Install Plugin from Disk
Marketplace 安装
打开 IDEA,进入 Settings --> Plugins,选中 Marketplace,输入 GenerateAllSetter Postfix Completion 点击 Install
2.打开俺提供的示例项目
示例项目地址:docer-savior-plugin-usage-examples
或
git clone https://github.com/docer-savior/docer-savior-plugin-usage-examples
下载后,找到 cn.gudqs.example.genset.GenerateSetterAndGetterUsage
文件
3.插件使用
演示所使用的基础类
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
class Foo {
private Integer testInt;
private Long testLong;
private Float testFloat;
private Double testDouble;
private Boolean testBoolean;
}
生成 set
public void usage01() {
// 用法1, 生成所有 set 方法, 带默认值, 通过 postfix
Foo foo = new Foo();
// 取消下面的注释, 光标位于 allset 后面, 按下 Tab 键
// foo.allset
// 即可得到下面结果, 且 foo.allset 会自动消失
foo.setTestInt(0);
foo.setTestLong(0L);
foo.setTestFloat(0f);
foo.setTestDouble(0D);
foo.setTestBoolean(false);
}
生成 get
public void usage03() {
// 用法3, 生成所有 get 方法, 通过 postfix
Foo foo = new Foo();
// 取消下面的注释, 光标位于 allget 后面, 按下 Tab 键
// foo.allget
// 即可得到下面结果, 且 foo.allget 会自动消失
Integer testInt = foo.getTestInt();
Long testLong = foo.getTestLong();
Float testFloat = foo.getTestFloat();
Double testDouble = foo.getTestDouble();
Boolean testBoolean = foo.getTestBoolean();
}
Lombok 的 @Builder 快速生成所有赋值方法的调用链
public void usage04() {
// 用法4, 生成所有 set 方法, 通过 builder, 通过 postfix
// 取消下面的注释, 光标位于 allbuilder 后面, 按下 Tab 键
// Foo.builder().allbuilder
// 即可得到下面结果
Foo foo = Foo.builder()
.testInt(0)
.testLong(0L)
.testFloat(0f)
.testDouble(0D)
.testBoolean(false)
.build();
}
根据一段含有源对象(a)/目标对象(b)的 b.setXxx(a.getXxx()) 方法代码生成所有 set 方法以快速实现对象转换
public void usage05() {
// 用法5, 将 src 的数据赋值给 dest, 常用于两个不同类直接进行 convert(需字段名称相同), 通过 postfix
Foo src = new Foo();
Foo dest = new Foo();
// 取消下面的注释, 光标位于 convert 后面, 按下 Tab 键
// dest.setTestInt(src.getTestInt());.convert
// 即可得到下面结果
dest.setTestInt(src.getTestInt());
dest.setTestLong(src.getTestLong());
dest.setTestFloat(src.getTestFloat());
dest.setTestDouble(src.getTestDouble());
dest.setTestBoolean(src.getTestBoolean());
}