Library Java yang Memindahkan Validasi ke Sistem Tipe (123 tipe bawaan yang sudah didefinisikan)
(github.com/JunggiKim)Java Refined adalah library yang menanamkan tipe refinement bawaan seperti NonBlankString dan PositiveInt di tempat String dan int, sehingga validasi dipindahkan ke signature.
// 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 jenis tipe bawaan yang sudah didefinisikan dan bisa langsung di-import (VAVR/Arrow hanya menyediakan polanya)
NonEmptyList<T>mengimplementasikanList<T>secara langsung — tidak perlu unwrapping- Tanpa dependensi runtime · Java 8+ · MIT · Maven Central · modul ekstensi Kotlin terpisah
- Cakupan baris 100% + skor mutasi PIT 95%
- Sejujurnya: proyek satu orang, belum ada benchmark JMH, tidak ada bridge Jackson/
@Valid
Belum ada komentar.