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.

Kategorien: Entwicklung

0 Kommentare

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert