ไลบรารี Java ที่ย้ายการตรวจสอบความถูกต้องไปไว้ในระบบชนิดข้อมูล (มีชนิดที่กำหนดไว้ล่วงหน้า 123 แบบ)
(github.com/JunggiKim)Java Refined เป็นไลบรารีที่ใส่ refined types ที่กำหนดไว้ล่วงหน้า เช่น NonBlankString, PositiveInt แทน String, int เพื่อ ย้ายการตรวจสอบไปไว้ที่ซิกเนเจอร์
// 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 แบบ ให้ import มาใช้ได้ทันที (VAVR/Arrow ให้มาแค่แพตเทิร์น)
NonEmptyList<T>implementsList<T>โดยตรง — ไม่ต้อง unwrapping- Zero runtime deps · Java 8+ · MIT · Maven Central · มีโมดูลขยายสำหรับ Kotlin แยกต่างหาก
- line coverage 100% + คะแนน PIT mutation 95%
- พูดกันตรง ๆ: เป็นโปรเจกต์ของคนคนเดียว, ไม่มี JMH benchmark, ไม่มี bridge สำหรับ Jackson/
@Valid
ยังไม่มีความคิดเห็น