Lombok
@Getter and @Setter
ClassName.java
1
2
3
4
5
@Getter
@Setter
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class ClassName {
private String name;
private int age;
public ClassName() {
}
public String getName() {
return this.name;
}
public void setName(final String name) {
this.name = name;
}
}
@Accessors(chain = true)
ClassName.java
1
2
3
4
5
6
@Accessors(chain = true)
@Getter
@Setter
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ClassName {
private String name;
public ClassName() {
}
public String getName() {
return this.name;
}
public ClassName setName(final String name) {
this.name = name;
return this;
}
}
@Accessors(fluent = true)
ClassName.java
1
2
3
4
5
6
@Accessors(fluent = true)
@Getter
@Setter
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class ClassName {
private String name;
public ClassName() {
}
public String name() {
return this.name;
}
public ClassName name(final String name) {
this.name = name;
return this;
}
}
@Accessors(prefix = “xxx”)
ClassName.java
1
2
3
4
5
6
@Accessors(prefix = "n")
@Getter
@Setter
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
public class ClassName {
private String name;
public ClassName() {
}
}
ClassName.java
1
2
3
4
5
6
@Accessors(prefix = "my")
@Getter
@Setter
public class ClassName {
private String myName;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ClassName {
private String myName;
public ClassName() {
}
public String getName() {
return this.myName;
}
public void setName(final String myName) {
this.myName = myName;
}
}
lombok.getter.noIsPrefix= [ true| false](默认值:false)
如果设置为true,则为boolean字段生成的getter 将使用get前缀而不是默认is前缀,并且任何调用getter的生成代码(例如)@ToString也将使用get而不是is
说明
对于boolean以is紧跟着标题大小写字母开头的字段,不会生成任何前缀以生成getter名称。
任何变化boolean都不会导致使用is前缀而不是get前缀; 例如,返回java.lang.Boolean的结果get前缀,而不是一个is前缀。
ClassName.java
1
2
3
4
5
6
@Getter
@Setter
public class ClassName {
private String name;
private boolean isAdult;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class ClassName {
private String name;
private boolean isAdult;
public ClassName() {
}
public String getName() {
return this.name;
}
public boolean getIsAdult() {
return this.isAdult;
}
public void setName(final String name) {
this.name = name;
}
public void setIsAdult(final boolean isAdult) {
this.isAdult = isAdult;
}
}
@Data
ClassName.java
1
2
3
4
@Data
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
public class ClassName {
private String name;
public ClassName() {
}
public String getName() {
return this.name;
}
public void setName(final String name) {
this.name = name;
}
public boolean equals(final Object o) {
if (o == this) {
return true;
} else if (!(o instanceof ClassName)) {
return false;
} else {
ClassName other = (ClassName)o;
if (!other.canEqual(this)) {
return false;
} else {
Object this$name = this.getName();
Object other$name = other.getName();
if (this$name == null) {
if (other$name != null) {
return false;
}
} else if (!this$name.equals(other$name)) {
return false;
}
return true;
}
}
}
protected boolean canEqual(final Object other) {
return other instanceof ClassName;
}
public int hashCode() {
int PRIME = true;
int result = 1;
Object $name = this.getName();
int result = result * 59 + ($name == null ? 43 : $name.hashCode());
return result;
}
public String toString() {
return "ClassName(name=" + this.getName() + ")";
}
}
@RequiredArgsConstructor
ClassName.java
1
2
3
4
5
@RequiredArgsConstructor
public class ClassName {
private String name;
private final Boolean isAdult;
}
ClassName.class
1
2
3
4
5
6
7
8
public class ClassName {
private String name;
private final Boolean isAdult;
public ClassName(final Boolean isAdult) {
this.isAdult = isAdult;
}
}
@NoArgsConstructor and @AllArgsConstructor
ClassName.java
1
2
3
4
5
@NoArgsConstructor
@AllArgsConstructor
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
public class ClassName {
private String name;
public ClassName() {
}
public ClassName(final String name) {
this.name = name;
}
}
@Builder
ClassName.java
1
2
3
4
@Builder
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class ClassName {
private String name;
ClassName(final String name) {
this.name = name;
}
public static ClassName.ClassNameBuilder builder() {
return new ClassName.ClassNameBuilder();
}
public static class ClassNameBuilder {
private String name;
ClassNameBuilder() {
}
public ClassName.ClassNameBuilder name(final String name) {
this.name = name;
return this;
}
public ClassName build() {
return new ClassName(this.name);
}
public String toString() {
return "ClassName.ClassNameBuilder(name=" + this.name + ")";
}
}
}
@Log
ClassName.java
1
2
3
4
@Log
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
import java.util.logging.Logger;
public class ClassName {
private static final Logger log = Logger.getLogger(ClassName.class.getName());
private String name;
public ClassName() {
}
}
@Slf4j
ClassName.java
1
2
3
4
@Slf4j
public class ClassName {
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ClassName {
private static final Logger log = LoggerFactory.getLogger(ClassName.class);
private String name;
public ClassName() {
}
}
@NonNull
ClassName.java
1
2
3
4
5
6
@Getter
@Setter
public class ClassName {
@NonNull
private String name;
}
ClassName.class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class ClassName {
@NonNull
private String name;
public ClassName() {
}
@NonNull
public String getName() {
return this.name;
}
public void setName(@NonNull final String name) {
if (name == null) {
throw new NullPointerException("name is marked non-null but is null");
} else {
this.name = name;
}
}
}
结束语
Lombok的注解远不止于此, 更多详情可以转至 Lombok官网, 这里只做了一些常用的使用