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()、Stream.of()、List.of()などのモダンなAPIで広く使われています。

共有 𝕏 🦋 in