Language 초급

인터페이스의 정적 메서드

별도의 유틸리티 클래스 대신 인터페이스에 직접 정적 유틸리티 메서드를 추가합니다.

✕ Java 7
// Separate utility class needed
public class ValidatorUtils {
    public static boolean isBlank(
        String s) {
        return s == null ||
               s.trim().isEmpty();
    }
}

// Usage
if (ValidatorUtils.isBlank(input)) { ... }
✓ Java 8+
public interface Validator {
    boolean validate(String s);

    static boolean isBlank(String s) {
        return s == null ||
               s.trim().isEmpty();
    }
}

// Usage
if (Validator.isBlank(input)) { ... }
이 코드에 문제가 있나요? 알려주세요.
📦

더 나은 구성

관련 유틸리티를 별도의 클래스가 아닌 인터페이스와 함께 유지합니다.

🔍

발견 용이성

팩토리와 헬퍼 메서드가 예상한 곳에서 발견됩니다.

🧩

API 응집성

별도의 *Utils 또는 *Helper 클래스가 필요 없습니다.

이전 방식
유틸리티 클래스
모던 방식
인터페이스 정적 메서드
JDK 버전
8
난이도
초급
인터페이스의 정적 메서드
사용 가능

JDK 8 (2014년 3월) 이후 사용 가능

Java 8 이전에는 인터페이스와 관련된 유틸리티 메서드가 별도의 클래스에 있어야 했습니다(예: Collection을 위한 Collections). 인터페이스의 정적 메서드는 관련 유틸리티를 함께 유지할 수 있게 합니다. Comparator.comparing() 같은 모던 API에서 흔히 볼 수 있습니다.

공유 𝕏 🦋 in