Language Principiante

Añade métodos de utilidad estáticos directamente a las interfaces en lugar de clases de utilidad 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)) { ... }
¿Ves un problema con este código? Cuéntanos.
📦

Mejor organización

Mantén las utilidades relacionadas con la interfaz, no en una clase separada.

🔍

Descubribilidad

Los métodos factory y auxiliares se encuentran donde los esperas.

🧩

Cohesión de API

No se necesitan clases *Utils o *Helper separadas.

Enfoque Antiguo
Clases de utilidad
Enfoque Moderno
Métodos estáticos en interfaces
Desde JDK
8
Dificultad
Principiante
Métodos estáticos en interfaces
Disponible

Disponible desde JDK 8 (marzo 2014)

Antes de Java 8, los métodos de utilidad relacionados con una interfaz debían residir en una clase separada (p.ej., Collections para Collection). Los métodos estáticos en interfaces permiten mantener las utilidades relacionadas juntas. Es común en las APIs modernas como Comparator.comparing(), Stream.of() y List.of().

Compartir 𝕏 🦋 in