在Java Lombok中,@Accessors注解用于配置生成的getter和setter方法的訪問級別和命名方式。
@Accessors可以使用以下屬性進行配置:
chain
:boolean類型,默認為false。如果設置為true,則生成的setter方法返回this,以支持鏈式調用。fluent
:boolean類型,默認為false。如果設置為true,則生成的getter和setter方法的方法名不帶get和set前綴。prefix
:String類型,默認為空字符串。設置生成的getter和setter方法的前綴。lazy
:boolean類型,默認為false。如果設置為true,則生成的getter方法將采用延遲初始化策略。使用@Accessors可以在類級別和屬性級別進行配置。在類級別配置時,會為該類中的所有屬性生成相同的訪問級別和命名方式。在屬性級別配置時,可以為每個屬性單獨指定不同的配置。
下面是一個示例:
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
@Getter
@Setter
@ToString
@Accessors(chain = true, fluent = true, prefix = "my", lazy = true)
public class Example {
private String name;
private int age;
}
public class Main {
public static void main(String[] args) {
Example example = new Example().myName("Alice").myAge(20);
System.out.println(example);
}
}
在上面的示例中,我們在類級別使用@Accessors注解配置了鏈式調用、去除前綴、延遲初始化等屬性。因此,我們可以通過鏈式調用的方式設置屬性的值,并且生成的getter和setter方法的方法名不帶get和set前綴。在Main類中,我們創建了一個Example對象,并使用生成的setter方法設置屬性的值。最后,打印Example對象時,會調用生成的toString方法輸出對象的值。