Language Principiante

Aggiungi metodi di utilità statici direttamente nelle interfacce invece di classi di utilità separate.

✕ 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)) { ... }
Vedi un problema con questo codice? Faccelo sapere.
📦

Migliore organizzazione

Tieni le utilità correlate con l'interfaccia, non in una classe separata.

🔍

Rilevabilità

I metodi factory e helper si trovano dove te li aspetti.

🧩

Coesione dell'API

Nessun bisogno di classi *Utils o *Helper separate.

Approccio Vecchio
Classi di utilità
Approccio Moderno
Metodi statici nelle interfacce
Dal JDK
8
Difficoltà
Principiante
Metodi statici nelle interfacce
Disponibile

Disponibile dal JDK 8 (marzo 2014)

Prima di Java 8, i metodi di utilità correlati a un'interfaccia dovevano trovarsi in una classe separata (es. Collections per Collection). I metodi statici nelle interfacce permettono di tenere le utilità correlate insieme. Comune nelle API moderne come Comparator.comparing(), Stream.of() e List.of().

Condividi 𝕏 🦋 in