Parth Shah:
Soy nuevo en Lombok y confundido por qué el código siguiente se compila sin ningún error. Desde que he especificado el Setter tener AccessLevel.PROTECTED
, ¿no debería haber algún tipo de errores de compilación?
AnotherClass.java
@NoArgsConstructor
@AllArgsConstructor
public class AnotherClass {
@Getter @Setter
private int width;
@Getter(AccessLevel.PUBLIC) @Setter(AccessLevel.PROTECTED)
private int height;
@Getter @Setter @NonNull
private String name;
}
Main.java
public static void main(String[] args) {
AnotherClass instance1 = new AnotherClass(2, 1, "instance1");
System.out.println("Fetching height of instance1: " + instance1.getHeight());
instance1.setHeight(3);
System.out.println("Fetching height of instance1: " + instance1.getHeight());
}
salida:
Fetching height of instance1: 1
Fetching height of instance1: 3
rzwitserloot:
Se puede utilizar delombok
para comprobar que los emisores generados son de hecho 'protegidos'. A medida que los comentarios indican, los niveles de acceso de Java es una ascensión estricta; todos los niveles más permisiva incluye todos los accesos 'abajo' ella. Así:
private
= Más o menos: Todo el código en este archivo.- nada (Programa privado) = Todas
private
+ todo el código fuente en el mismo paquete. protected
= Todas las anteriores subclases +, incluso en otro paquete.public
= Todo.
Exención de responsabilidad: yo soy un desarrollador de Lombok.