安装lombok
注意:我用的的idea,首先先把插件装上,不然也不好使
正常情况下写个Bean会是下面这种情况
public class Test {
private int id;
private String username;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
getter和setter
我采用的是springboot,这个自适配版本。编译之后版本是1.16.16
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
然后Bean中
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class Test {
private int id;
private String username;
}
这个@Setter
,@Getter
可以放在属性上,放在类上所有的属性都会getter,setter。下面两张图对比
lombok的其他注解
@NoArgsConstructor
加上这个注解给类添加一个无参构造函数
@Setter
@Getter
@NoArgsConstructor//注释掉之后下面new就报错
public class Test {
private int id;
private String username;
public Test(int id,String username){
this.id=id;
this.username = username;
}
public static void main(String[] args) {
Test test = new Test();
test.setUsername("lijia");
System.out.println(test.getUsername());
}
}
@AllArgsConstructor
给类添加一个全参的构造函数
@Setter
@Getter
@AllArgsConstructor
public class Test {
private int id;
private String username;
public static void main(String[] args) {
Test test = new Test(1,"kuhua");
test.setUsername("lijia");
System.out.println(test.getUsername());
}
}
@Data
不仅给类全属性添加getter,setter方法,还提供了equals、canEqual、hashCode、toString 方法
@Data
public class Test {
private int id;
private String username;
public static void main(String[] args) {
Test test = new Test();
test.setUsername("lijia");
System.out.println(test.getUsername());
}
}
@NotNull
让属性不为空,下图去创建构造函数就报错
改一下就好了
总结
为什么用注解就可以getter,setter这么6.编译之后查看class文件,你会发现class里面还是getter,setter,只是写的时候方便了。