Schließung in Java

MD Aminul Islam 12 Oktober 2023
  1. Schließung in Java
  2. Verschachtelte Verwendung von Closures in Java
Schließung in Java

Wenn wir einen Lambda-Ausdruck definieren, durch den wir bereit sind, den Wert einer Variablen zu erhöhen, wird ein Fehler ausgegeben.

Es gibt jedoch eine einfache Lösung für dieses Problem. Durch die Verwendung von Closures können wir diesen Fehler verhindern.

Closures sind die Inline-Funktion und haben wertvolle Ausdrücke, was bedeutet, dass sie die Funktionen einer Klasse mit begrenzten Variablen sind. Ein weiteres spannendes Feature von Closures ist, dass sie als Parameter an eine andere Funktion übergeben werden können.

Dieser Artikel wird ausführlich auf Closures eingehen und notwendige Beispiele und Erklärungen liefern, um das Thema zu vereinfachen.

Bevor wir in die Diskussion einsteigen, sehen wir uns die allgemeine Syntax der Schließung an, die in etwa so aussieht wie unten.

(List_of_Arguments) -> {
  Function_Body
}

Schließung in Java

In unserem Beispiel unten veranschaulichen wir die grundlegendsten der Closures, wo wir Closures verwendet haben, um zwei Strings zu kombinieren. Werfen wir einen Blick auf unseren folgenden Code.

package javacodes;
// Importing necessary packages
import java.io.*;

interface CombineString { // Defining a interface
  public String concat(String a, String b);
}

// The controlling class
public class JavaClosures {
  public static void main(String[] args) {
    // Using the "Lambda Expression"
    CombineString cs = (str1, str2) -> str1 + str2;

    System.out.println("The combined string is: " + cs.concat("Alen", " Walker"));
  }
}

Wir haben bereits den Zweck jeder Zeile kommentiert. Im obigen Beispiel haben wir zuerst eine Schnittstelle namens CombineString mit einer abstrakten Methode namens concat definiert.

Jetzt haben wir in unserer Kontrollklasse gerade einen Closure erstellt, um die abstrakte Methode zu definieren.

Nachdem Sie das obige Beispiel ausgeführt haben, erhalten Sie eine Ausgabe wie die folgende.

The combined string is: Alen Walker

Verschachtelte Verwendung von Closures in Java

Lassen Sie uns etwas tiefer in unser Thema einsteigen. Schauen Sie sich unser Beispiel unten an, wo wir einen verschachtelten Aufruf zwischen zwei Closures erstellt haben.

interface PrintData { // An interface to print data
  public void Print(int data); // An abstract method to print data
}

interface NumberAdd { // An interface to add two numbers
  public void add(int a, int b); // An abstract method to add two numbers
}

// Main controlling class
public class JavaClosures {
  public static void main(String[] args) {
    // Using the "Lambda Expression"
    PrintData printdata = (str) -> {
      System.out.println("The combined string is: " + str);
    };
    NumberAdd addnum = (x, y) -> {
      printdata.Print(x + y); // The nested call
    };
    addnum.add(5, 5); // Calling the add method
  }
}

Wir haben bereits den Zweck jeder Zeile kommentiert. In unserem obigen Beispiel haben wir zuerst die Schnittstellen PrintData und NumberAdd erstellt.

Das Interface PrintData enthält die abstrakte Methode Print und das Interface NumberAdd enthält die abstrakte Methode add.

Nun haben wir in unserer Controlling-Klasse zuerst die abstrakte Methode Print definiert, wie wir diese Methode fies nennen werden.

Dann definieren wir die abstrakte Methode add, und wenn Sie sich die Definition dieser Methode ansehen, werden Sie sehen, dass wir die Methode Print genannt haben.

Nachdem Sie das obige Beispiel ausgeführt haben, erhalten Sie eine Ausgabe wie die folgende.

The combined string is: 10

Bitte beachten Sie, dass die hier freigegebenen Codebeispiele in Java sind und Sie Java in Ihrer Umgebung installieren müssen, wenn Ihr System kein Java enthält.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn