<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Errorprone on Java &amp; Moi</title><link>https://javaetmoi.com/tags/errorprone/</link><description>Recent content in Errorprone on Java &amp; Moi</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Sat, 05 Jul 2025 17:06:00 +0000</lastBuildDate><atom:link href="https://javaetmoi.com/tags/errorprone/feed.xml" rel="self" type="application/rss+xml"/><item><title>JSpecify + NullAway + ErrorProne : la configuration Maven ultime pour dire adieu aux NullPointerException</title><link>https://javaetmoi.com/2025/07/jspecify-nullaway-errorprone-la-configuration-maven-ultime-pour-dire-adieu-aux-nullpointerexception/</link><pubDate>Sat, 05 Jul 2025 17:06:00 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2599</guid><description>&lt;p&gt;La gestion de la &lt;strong&gt;nullabilité&lt;/strong&gt; en Java a longtemps été source de bugs et de fragmentation.
Contrairement à Kotlin par exemple, Java ne possède pas encore nativement de moyen d’exprimer la nullité d’un type.
Qui n’aura donc jamais ragé contre une &lt;code&gt;NullPointerException&lt;/code&gt; survenue en production ? En juin 2024, avec l’arrivée de la spécification &lt;a href="https://jspecify.dev/"&gt;&lt;strong&gt;JSpecify&lt;/strong&gt;&lt;/a&gt;, soutenue par des acteurs majeurs comme Google, Microsoft, JetBrains, Oracle, Sonar ou bien encore Broadcom (Spring),
l’écosystème Java dispose enfin d’une &lt;strong&gt;bibliothèque unifiée d’annotations de nullité&lt;/strong&gt;.
Pour bénéficier d’une détection efficace des NullPointerException dès la compilation, il est nécessaire de coupler JSpecify à des outils d’analyse statique comme &lt;a href="https://github.com/uber/NullAway"&gt;&lt;strong&gt;NullAway&lt;/strong&gt;&lt;/a&gt; (Uber) et &lt;a href="https://errorprone.info/"&gt;&lt;strong&gt;ErrorProne&lt;/strong&gt;&lt;/a&gt; (Google).&lt;/p&gt;
&lt;p&gt;Ce court article explique comment mettre en place sur un projet d’entreprise la &lt;strong&gt;configuration Maven&lt;/strong&gt; correspondante qui fera casser votre build et votre CI lorsque vous essayerez de passer une variable &lt;code&gt;null&lt;/code&gt; en paramètre d’une méthode qui ne les accepte pas.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Screenshot du site de JSpecify"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2025/07/Screenshot-site-JSpecify.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item></channel></rss>