fbpx

@NULLABLE y @NONNULL en JAVA

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
  }
}