NullAway
Shares rank 10 of 12 static analyzers by recommenders
Recommended as a way to add compile-time null safety to Java, pairing with JSpecify annotations. One critic says full annotation leaves code cluttered with checks and Optional wrappers.
Recommended as a way to add compile-time null safety to Java, pairing with JSpecify annotations. One critic says full annotation leaves code cluttered with checks and Optional wrappers.
6 people gave an opinion
- recommend it
- 5
- criticize it
- 1
- approval share
- 83%
Recommended in 3 of 13 months
- November 2025: not recommended
- December 2025: not recommended
- January 2026: recommended
- February 2026: not recommended
- March 2026: not recommended
- April 2026: not recommended
- May 2026: not recommended
- June 2026: recommended
- July 2026: not recommended
- August 2026: not recommended
- September 2026: recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 5 people recommend itNeeds 10 or more, not met.
- 5 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 3 of 13 monthsNeeds 4 or more, not met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Compile-time null safety for Java
“Combine that with NullAway are you have compile time null safety”
Comment from 21 Jun 2026 in “Excessive nil pointer checks in Go” “are a really good way to add null safety to Java applications”
Comment from 15 Sep 2026 in “Java 27” “Use NullAway and it basically makes the problem go away.”
Comment from 15 Sep 2026 in “Java 27” Forces fully annotated non-nullable types
“NullAway and JSpecify encourage making as many types non-nullable as possible”
Comment from 16 Sep 2026 in “Java 27” “NullAway really forces you to correctly and fully null annotate your code.”
Comment from 21 Jun 2026 in “Excessive nil pointer checks in Go” “Any serious project will be using NullAway and annotating everything”
Comment from 15 Sep 2026 in “Java 27” Makes null problems go away
“Use NullAway and it basically makes the problem go away.”
Comment from 15 Sep 2026 in “Java 27” “already (in my opinion) a solved problem”
Comment from 5 Jan 2026 in “Was It Really a Billion Dollar Mistake?”
Other static analyzers people recommend
The four most recommended other static analyzers, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| zizmor | 19 | 1 | 95% | 6 | — | Approved |
| Semgrep | 14 | 10 | 58% | 7 | — | — |
| clang-tidy | 14 | 4 | 78% | 6 | — | Approved |
| PHPStan | 11 | 0 | 100% | 7 | — | Approved |
| NullAwayThis page | 5 | 1 | 83% | 3 | — | — |
What people said
All 8 comments that mention it, newest first. Each links to the original comment.
“NullAway and JSpecify encourage making as many types non-nullable as possible”
“sprinkled your code with ugly annotations and ifs and Optional Optional.of(x).map(y) all over the place”
“Use NullAway and it basically makes the problem go away.”
“are a really good way to add null safety to Java applications”
“Any serious project will be using NullAway and annotating everything”
“NullAway really forces you to correctly and fully null annotate your code.”
“Combine that with NullAway are you have compile time null safety”
“already (in my opinion) a solved problem”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.