在Java Lombok中,@Accessors注解用于配置生成的getter和setter方法的訪問級(jí)別和命名方式。
@Accessors可以使用以下屬性進(jìn)行配置:
chain
:boolean類型,默認(rèn)為false。如果設(shè)置為true,則生成的setter方法返回this,以支持鏈?zhǔn)秸{(diào)用。fluent
:boolean類型,默認(rèn)為false。如果設(shè)置為true,則生成的getter和setter方法的方法名不帶get和set前綴。prefix
:String類型,默認(rèn)為空字符串。設(shè)置生成的getter和setter方法的前綴。lazy
:boolean類型,默認(rèn)為false。如果設(shè)置為true,則生成的getter方法將采用延遲初始化策略。使用@Accessors可以在類級(jí)別和屬性級(jí)別進(jìn)行配置。在類級(jí)別配置時(shí),會(huì)為該類中的所有屬性生成相同的訪問級(jí)別和命名方式。在屬性級(jí)別配置時(shí),可以為每個(gè)屬性單獨(dú)指定不同的配置。
下面是一個(gè)示例:
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);
}
}
在上面的示例中,我們在類級(jí)別使用@Accessors注解配置了鏈?zhǔn)秸{(diào)用、去除前綴、延遲初始化等屬性。因此,我們可以通過鏈?zhǔn)秸{(diào)用的方式設(shè)置屬性的值,并且生成的getter和setter方法的方法名不帶get和set前綴。在Main類中,我們創(chuàng)建了一個(gè)Example對象,并使用生成的setter方法設(shè)置屬性的值。最后,打印Example對象時(shí),會(huì)調(diào)用生成的toString方法輸出對象的值。