Statische Methoden in Interfaces
Statische Hilfsmethoden direkt in Interfaces hinzufügen, anstatt separate Hilfsklassen zu verwenden.
Code-Vergleich
✕ 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)) { ... }
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Bessere Organisation
Verwandte Hilfsfunktionen beim Interface behalten, nicht in einer separaten Klasse.
Auffindbarkeit
Factory- und Hilfsmethoden sind dort zu finden, wo man sie erwartet.
API-Kohäsion
Keine separaten *Utils- oder *Helper-Klassen mehr erforderlich.
Alter Ansatz
Hilfsklassen
Moderner Ansatz
Statische Interface-Methoden
Seit JDK
8
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Statische Methoden in Interfaces
Verfügbar
Verfügbar seit JDK 8 (März 2014)
Wie es funktioniert
Vor Java 8 mussten Hilfsmethoden, die sich auf ein Interface bezogen, in einer separaten Klasse leben (z. B. Collections für Collection). Statische Methoden in Interfaces erlauben es, verwandte Hilfsfunktionen zusammenzuhalten. Gängig in modernen APIs wie Comparator.comparing(), Stream.of() und List.of().
Zugehörige Dokumentation