默认情况下,当我们使用Lombok@Getter和@Setter注解时,将使用publicaccess修饰符创建getter和setter 。但是,我们可以通过设置改变访问修饰符AccessLevel的@Getter和@Setter注释。对于访问级别可用的选项有AccessLevel.PUBLIC,AccessLevel.PROTECTED,AccessLevel.PACKAGE,AccessLevel.PRIVATE。这些枚举值对应于Java的access修饰符。而AccessLevel.NONE会禁用getter和setter方法的生成。package org.nhooo.example.lombok.domain;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
@Getter @Setter
public class Person {
@Setter(AccessLevel.PROTECTED)
private String firstName;
private String lastName;
private String gender;
@Getter(AccessLevel.PRIVATE)
private int age;
}
我们如何使用Person以下代码段中的类显示:package org.nhooo.example.lombok;
import org.nhooo.example.lombok.domain.Person;
public class PersonDemo {
public static void main(String[] args) {
Person person = new Person();
person.setLastName("Bar");
person.setGender("M");
person.setAge(20);
System.out.println(person.getFirstName());
System.out.println(person.getLastName());
System.out.println(person.getGender());
}
}
如果尝试查看该类的生成类,则Person可以运行以下命令来反汇编该类。javap -p -cp . org.nhooo.example.lombok.domain.Person
并且我们获得了以下javap命令输出。如我们所见,该setFirstName()方法具有protected访问修饰符,并且该getAge()方法具有private访问修饰符。另一个mutator和accessor方法都设置为public访问修饰符。public class org.nhooo.example.lombok.domain.Person {
private java.lang.String firstName;
private java.lang.String lastName;
private java.lang.String gender;
private int age;
public org.nhooo.example.lombok.domain.Person();
public java.lang.String getFirstName();
public java.lang.String getLastName();
public java.lang.String getGender();
public void setLastName(java.lang.String);
public void setGender(java.lang.String);
public void setAge(int);
protected void setFirstName(java.lang.String);
private int getAge();
}
Maven依赖
org.projectlombok
lombok
1.18.4