1P by k42kr 2시간전 | ★ favorite | 댓글과 토론

Java RefinedString, int 자리에 NonBlankString, PositiveInt처럼 사전 정의된 정제(refinement) 타입을 박아 검증을 시그니처로 옮기는 라이브러리입니다.

// 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) { }  
  • 즉시 import해서 쓰는 123종 사전 정의 타입 (VAVR/Arrow는 패턴만 줌)
  • NonEmptyList<T>List<T>직접 구현 — 언래핑 불필요
  • Zero runtime deps · Java 8+ · MIT · Maven Central · Kotlin 확장 모듈 별도
  • 100% 라인 커버리지 + 95% PIT 뮤테이션 점수
  • 솔직히: 1인 프로젝트, JMH 벤치마크 미존재, Jackson/@Valid 브리지 없음

GitHub: https://github.com/JunggiKim/java-refined

댓글과 토론