Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java 8 - Standardmethoden

Java 8 führt ein neues Konzept der Implementierung von Standardmethoden in Schnittstellen ein. Diese Funktion wurde aus Gründen der Abwärtskompatibilität hinzugefügt, sodass alte Schnittstellen verwendet werden können, um die Lambda-Ausdrucksfunktion von Java 8 zu nutzen.

„List“- oder „Collection“-Schnittstellen haben beispielsweise keine „forEach“-Methodendeklaration. Daher wird das Hinzufügen einer solchen Methode einfach die Implementierungen des Sammlungsframeworks unterbrechen. Java 8 führt die Standardmethode ein, sodass die List/Collection-Schnittstelle eine Standardimplementierung der forEach-Methode haben kann und die Klasse, die diese Schnittstellen implementiert, nicht dieselbe implementieren muss.

Syntax

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

Mehrere Standardeinstellungen

Bei Standardfunktionen in Schnittstellen besteht die Möglichkeit, dass eine Klasse zwei Schnittstellen mit denselben Standardmethoden implementiert. Der folgende Code erklärt, wie diese Mehrdeutigkeit aufgelöst werden kann.

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
}

public interface fourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

Die erste Lösung besteht darin, eine eigene Methode zu erstellen, die die Standardimplementierung überschreibt.

public class car implements vehicle, fourWheeler {

   public void print() {
      System.out.println("I am a four wheeler car vehicle!");
   }
}

Die zweite Lösung besteht darin, die Standardmethode der angegebenen Schnittstelle mit super.

aufzurufen
public class car implements vehicle, fourWheeler {

   public void print() {
      vehicle.super.print();
   }
}

Statische Standardmethoden

Eine Schnittstelle kann ab Java 8 auch statische Hilfsmethoden haben.

public interface vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

Beispiel für Standardmethode

Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in beispielsweise C:\> JAVA.

Java8Tester.java

Live-Demo
public class Java8Tester {

   public static void main(String args[]) {
      Vehicle vehicle = new Car();
      vehicle.print();
   }
}

interface Vehicle {

   default void print() {
      System.out.println("I am a vehicle!");
   }
	
   static void blowHorn() {
      System.out.println("Blowing horn!!!");
   }
}

interface FourWheeler {

   default void print() {
      System.out.println("I am a four wheeler!");
   }
}

class Car implements Vehicle, FourWheeler {

   public void print() {
      Vehicle.super.print();
      FourWheeler.super.print();
      Vehicle.blowHorn();
      System.out.println("I am a car!");
   }
}

Überprüfen Sie das Ergebnis

Kompilieren Sie die Klasse mit javac Compiler wie folgt -

C:\JAVA>javac Java8Tester.java

Führen Sie nun den Java8Tester wie folgt aus -

C:\JAVA>java Java8Tester

Es sollte die folgende Ausgabe erzeugen -

I am a vehicle!
I am a four wheeler!
Blowing horn!!!
I am a car!

Java

  1. Java-Operatoren
  2. Java-Kommentare
  3. Java for-each-Schleife
  4. Java-Strings
  5. Abstrakte Java-Klasse und abstrakte Methoden
  6. Java-Schnittstelle
  7. Anonyme Java-Klasse
  8. Java-Versuch-mit-Ressourcen
  9. Java-Anmerkungen
  10. Java-Assertionen