Syntaxerweiterung mit Java 9 (JEP 213).
1. Einleitung
Den vollständigen Code findest du auf GitHub:
https://github.com/MatthiasPischka/java-neuerungen
Ab Java 9 ist es möglich private Methoden in Interfaces zu definieren. Dabei handelt es sich um eine konsequente Erweiterung zu den mit Java 8 eingeführten default
Methoden.
2. Beispiele
package de.pischka.java.neuerungen.java9; public interface Fahrzeug { default String fahreVorwaerts(int geschwindigkeit) { return this.gebeFahrtAus("vorwärts", geschwindigkeit); } default String fahreRueckwaerts(int geschwindigkeit) { return this.gebeFahrtAus("rückwärts", geschwindigkeit); } private String gebeFahrtAus(String richtung, int geschwindigkeit) { return "Fährt mit " + geschwindigkeit + " km/h " + richtung; } static double meterProSekunde(int kilometerProStunde) { return berechneMeter(kilometerProStunde) / 3600.0; } private static int berechneMeter(int kilometer) { return kilometer * 1000; } }
Das Beispiel (gebeFahrtAus)
zeigt, dass wir Code aus default
Methoden durch die Nutzung von privaten Methoden auslagern können.
Bei dem zweiten Beispiel (berechneMeter)
handelt es sich stattdessen um eine private statische Methode. Diese Möglichkeit wurde eingeführt, um auch aus öffentlichen statischen Methoden Code auslagern zu können.
3. Vorteile
- Komplexe (bezogen auf die Lesbarkeit) öffentliche Methoden können durch Auslagerung von Code vereinfacht werden
- Code kann von mehreren Methoden wiederverwendet werden
4. Fazit
Die Möglichkeit private Methoden in Interfaces zu verwenden ist die konsequente Erweiterung von Interfaces, die mit Java 8 begonnen wurde. Sie hilft den Code strukturierter aufzubauen.
0 Kommentare