Cada fallo en producción grita NPE. Un null en la entrada, un segundo más y el cliente ya no está conectado.
He visto esto demasiadas veces: estos nulls saltan cuando consumimos APIs, leemos datos de la base o manejamos configuración opcional. Un valor que llega null al otro lado del código estalla al dereferenciarlo, y el arreglo termina en hotfixes nocturnos.
Primero, diseña por contrato: no devuelvas null. Si no hay valor, usa un valor por defecto o envoltura con Optional. Nosotros ganamos previsibilidad y reducimos costos de debugging. Por ejemplo:
String username = Optional.ofNullable(user)
.map(User::getName)
.orElse("anonymous");
Además, aplica guardias tempranas para fail fast: valida entradas y evita que un null propague. Si un objeto es obligatorio, mantén su no-nullidad en todo el flujo. Ejemplo:
if (user == null) {
throw new IllegalArgumentException("user is required");
}
Cierra con una acción concreta para hoy: identifica una ruta crítica donde puedas recibir null y refactorízala para usar Optional o, al menos, devolver un valor por defecto. Elige una llamada a servicio o lectura de datos que pueda devolver null y ponle un default o envoltura con Optional, luego verifica con tests simples de null-safety.
También tengo un video simple donde te muestra otra forma de evitar NPE:
Top comments (0)