En Java, @Nullable y @NonNull son anotaciones que se pueden usar para indicar si una variable o parámetro puede ser nulo o no, además también podemos indicar si un método devuelve un valor de retorno nulo o no. Estas anotaciones son útiles para evitar errores de NullPointerException y mejorar la legibilidad del código.
@Nullable y @NonNull son anotaciones útiles para evitar errores de NullPointerException y mejorar la legibilidad del código en Java. Es importante usarlas adecuadamente para proporcionar información precisa al compilador y a las herramientas de análisis de código sobre si una variable o parámetro puede ser nulo o no.
Vídeo explicativo
Es importante tener en cuenta que estas anotaciones no tienen ningún efecto en tiempo de ejecución y no se realiza ningún chequeo de nulidad automáticamente. En su lugar, se utilizan para proporcionar información al compilador y a otros herramientas de análisis de código, como IDEs y linters.
@Nullable
@Nullable se utiliza para indicar que una variable o parámetro puede ser nulo. Esto es útil si un método puede aceptar un valor nulo como entrada o si una variable puede contener un valor nulo en algún momento durante la ejecución del programa.
Parámetros
Cómo ya hemos indicado anteriormente la anotación @Nullable puede usarse en parámetros dentro de una clase, constructor o método para indicar que estos parámetros aceptan nulos.
Ejemplo para constructor:
public class Usuario {
private String nombre;
private String email;
public User(@Nullable String nombre, @Nullable String email) {
this.nombre = nombre;
this.email = email;
}
}
Ejemplo para método:
public void setNombre(@Nullable String nombre) {
this.nombre = nombre;
}
Métodos
En el siguiente ejemplo, el método getUserById
devuelve un objeto User
o null
si no se encuentra ningún usuario con el ID proporcionado. La anotación @Nullable se utiliza para indicar que el valor de retorno del método puede ser nulo.
public class UserService {
public @Nullable User getUserById(int id) {
// busca un usuario en la base de datos por el ID proporcionado
// si no se encuentra ningún usuario, devuelve null
}
}
@NonNull
De la misma forma que @Nullable, la anotación @NonNull se utiliza de la misma forma que hemos indicado anteriormente, con la diferendia de indicar que un parámetro no aceptar null o el método devuelve un valor que no es nulo.
Parámetros
Cómo ya hemos indicado anteriormente la anotación @NonNull puede usarse en parámetros dentro de una clase, constructor o método para indicar que estos parámetros aceptan nulos.
Ejemplo para constructor:
public class Usuario {
private String nombre;
private String email;
public User(@NonNull String nombre, @NonNull String email) {
this.nombre = nombre;
this.email = email;
}
}
Ejemplo para método:
public void setNombre(@NonNull String nombre) {
this.nombre = nombre;
}
Métodos
En el siguiente ejemplo, el método getUserById
devuelve un objeto User
o una excepción si no se encuentra ningún usuario con el ID proporcionado. La anotación @NonNull se utiliza para indicar que el valor de retorno del método no puede ser nulo.
public class UserService {
public @NonNull User getUserById(int id) {
// busca un usuario en la base de datos por el ID proporcionado
// si no se encuentra ningún usuario, devuelve una excepción
}
}