Lombok —— @Getter 和 @Setter
官网文档地址:@Getter和@Setter (projectlombok.org)
这两个注解既可以加在方法上又可以加在类上
-
加在方法上
@Geter
package cn.edu.hziee.pojo; import lombok.Getter; public class User { @Getter private String userName; private String password; private Integer age; private String phone; private String[] interest; private Boolean isMale; }
我们可以发现生成了一个 public(共有)的方法
-
加在类上
package cn.edu.hziee.pojo; import lombok.Getter; import lombok.Setter; @Getter @Setter public class User { private String userName; private String password; private Integer age; private String phone; private String[] interest; private Boolean isMale; }
-
如果类中有 staitic 类型的变量
package cn.edu.hziee.pojo; import lombok.Getter; import lombok.Setter; @Getter @Setter public class User { private String userName; private static String password; }
对于静态变量 Lombok 不会生成对应的 Get 和 Set 方法
-
如果类中有 final 类型的变量
对于常量 Lombok 不会生成对应的 Set 方法
-
排除某个变量
在注解中添加
AccessLevel.NONE
属性package cn.edu.hziee.pojo; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; @Getter @Setter public class User { private String userName; @Getter() @Setter(AccessLevel.NONE) private String password; }
-
5.1、AccessLevel
可以发现 Lombok 生成的 get()、set() 方法默认的访问权限是 public 的
如果我们想要修改方法的访问权限,就可以在注解中增加 AccessLevel.
源码声明:
lombok.AccessLevel value() default lombok.AccessLevel.PUBLIC;
官方注释:
If you want your setter to be non-public, you can specify an alternate access level here.
Returns:
The setter method will be generated with this access modifier如果您希望您的设置器是非公开的,您可以在此处指定备用访问级别。
返回:
将使用此访问修饰符生成 setter 方法
示例:
package cn.edu.hziee.pojo;
import lombok.AccessLevel;
import lombok.Getter;
public class User {
@Getter(AccessLevel.PROTECTED)
private String userName;
private String password;
private Integer age;
private String phone;
private String[] interest;
private Boolean isMale;
}
此时我们发现生成的方法变为了指定的 protected 访问权限
@Setter 同理
package cn.edu.hziee.pojo;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
public class User {
@Getter(AccessLevel.PROTECTED)
@Setter(AccessLevel.PROTECTED)
private String userName;
private String password;
private Integer age;
private String phone;
private String[] interest;
private Boolean isMale;
}