☕ Java

java.lang.NullPointerException

Vous appelez une méthode ou accédez à un champ sur une référence qui vaut `null`. L'objet attendu n'a jamais été instancié ou a été remis à `null`.

Message d'erreur
Exception in thread "main" java.lang.NullPointerException

🔍 Cause la plus probable

Une variable censée contenir un objet vaut `null` au moment de l'appel : retour de méthode `null`, dépendance non injectée, ou clé absente d'une `Map`.

✅ Solution étape par étape

  1. Lisez la stack trace : la ligne indiquée pointe l'objet `null`. Depuis Java 14+, le message « Helpful NullPointerExceptions » nomme précisément la variable.
  2. Vérifiez l'initialisation de cet objet avant son utilisation.
  3. Utilisez `Optional` pour les retours susceptibles d'être absents, et `Objects.requireNonNull` pour valider tôt.
// ✅ éviter le NPE
return Optional.ofNullable(repo.findById(id))
               .map(User::getName)
               .orElse("inconnu");

🧩 Autres causes possibles

Dépendance Spring non injectée (`@Autowired` manquant)

Vérifiez que le bean est bien injecté et géré par Spring (pas instancié avec `new`).

Auto-unboxing d'un Integer null

Un `Integer` null converti en `int` lève un NPE : gardez le wrapper et testez la nullité.

Collection ou Map retournant null

Utilisez `getOrDefault` ou initialisez la collection à vide plutôt que null.

🛡️ Comment l'éviter à l'avenir

Adoptez `Optional`, les annotations `@NonNull`/`@Nullable`, et initialisez les collections à vide. Activez les inspections de votre IDE.

🔒 Votre erreur est différente ?

Collez votre message d'erreur dans notre analyseur IA. Traitement anonymisé, rien n'est stocké.

Analyser mon erreur avec l'IA

Bloqué sur un bug plus complexe ?

Nos développeurs Java, Spring & Angular débuggent, optimisent et livrent votre projet.

Parler à un développeur