Language Iniciante

Adicione métodos utilitários estáticos diretamente em interfaces em vez de classes utilitárias separadas.

✕ 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)) { ... }
Viu um problema com este código? Nos avise.
📦

Melhor organização

Mantenha utilitários relacionados na interface, não em uma classe separada.

🔍

Descobribilidade

Métodos factory e auxiliares são encontrados onde se espera.

🧩

Coesão da API

Sem necessidade de classes *Utils ou *Helper separadas.

Abordagem Antiga
Classes utilitárias
Abordagem Moderna
Métodos estáticos na interface
Desde o JDK
8
Dificuldade
Iniciante
Métodos estáticos em interfaces
Disponível

Disponível desde o JDK 8 (março de 2014)

Antes do Java 8, métodos utilitários relacionados a uma interface precisavam ficar em uma classe separada (ex.: Collections para Collection). Métodos estáticos em interfaces permitem manter utilitários relacionados juntos. Comum em APIs modernas como Comparator.comparing(), Stream.of() e List.of().

Compartilhar 𝕏 🦋 in