References
JEP-485
JEP-485 is the JDK Enhancement Proposal (JEP) that was used to deliver Stream Gatherers. It contains quite a good explanation as to why we need Gatherers and details of how we got where we are today. If you are interested in the history of this proposal, there are previous versions available (note the “History” sections, which will explain what changed): JEP-473 (Second Preview) and JEP-462 (First Preview).
JSpecify
JSpecify is an open-source Java tool that adds nullness annotations to improve static analysis and prevent null-related runtime errors. It helps developers identify potential null pointer issues at compile-time, ensuring safer and more reliable code.
Gatherers4j annotates all methods and types with JSpecify to help you write better code.
Gatherers Overview and Examples
Some guidance from Oracle on what Stream Gatherers are and how to create them.