Java-Bibliothek, die Validierung ins Typsystem verlagert (123 vordefinierte Typen)
(github.com/JunggiKim)Java Refined ist eine Bibliothek, die Validierung in die Signatur verlagert, indem sie anstelle von String und int vordefinierte Refinement-Typen wie NonBlankString und PositiveInt einsetzt.
// Before
void createUser(String name, int age, List<String> roles) {
if (name == null || name.isBlank()) throw new IAE("name");
if (age <= 0) throw new IAE("age");
if (roles == null || roles.isEmpty()) throw new IAE("roles");
}
// After
void createUser(NonBlankString name, PositiveInt age, NonEmptyList<String> roles) { }
- 123 vordefinierte Typen, die sich sofort per Import verwenden lassen (VAVR/Arrow liefern nur das Muster)
NonEmptyList<T>implementiertList<T>direkt — kein Unwrapping nötig- Keine Runtime-Abhängigkeiten · Java 8+ · MIT · Maven Central · Kotlin-Erweiterungsmodul separat
- 100 % Line Coverage + 95 % PIT-Mutationsscore
- Ehrlich gesagt: Ein-Personen-Projekt, keine JMH-Benchmarks, keine Brücke für Jackson/
@Valid
Noch keine Kommentare.