Das Konzept und das Schreiben der anonymen Java-Klasse und der anonymen Funktion

Vorwort

Der Lambda-Stream-Betrieb ist eine wichtige Funktion in Java8. Das Kernkonzept des Lambda-Ausdrucks ist eine grundlegende Syntax wie funktionale Schnittstelle , :: , -> usw., die die Menge des geschriebenen Codes erheblich reduzieren und den Code eleganter machen kann

  1. Eine Schnittstelle mit nur einer abstrakten Funktion ist eine funktionale Schnittstelle
  2. :: kann als Domänenoperator bezeichnet werden, der hauptsächlich zum Abrufen von Methoden verwendet wird
  3. Die Syntax von -> lautet (Variable oder Parameter) -> {Codekörper}, was die Schreibmethode einer anonymen Funktion ist. Wird auch als Variablen- und Codetrennzeichen bezeichnet
  4. Wenn nur ein Methodenattribut erhalten wird, können :: und -> gemeinsam verwendet werden

einführen

Schnittstelle:

  • Eine Schnittstelle kann innerhalb einer anderen Klasse definiert werden
  • Die Methoden in der Schnittstelle sind abstrakte Methoden
  • Die Konstanten in der Schnittstelle sind statische Konstanten

Art:

  • Eine Klasse kann innerhalb einer anderen Klasse definiert werden
  • Sie kann mit dem Schlüsselwort static auch als interne statische Klasse definiert werden
  • Sie kann auch als lokale innere Klasse definiert werden, die in der Methode definiert wird

1. Was ist ein Lambda-Ausdruck?

        Der Lambda-Ausdruck soll das Schreiben des Codes vereinfachen

2. Was ist eine funktionale Schnittstelle?

        Eine Schnittstelle mit nur einer abstrakten Methode ist eine funktionale Schnittstelle

//1.定义一个函数式接口。只有一个抽象方法的接口就是函数式接口
interface ILike{
    void testLambda();
}

3. Was ist eine anonyme innere Klasse?

  1. kein Klassenname
  2. Muss auf eine Schnittstelle oder eine übergeordnete Klasse zurückgreifen
  3. Durch die Instanziierung der funktionalen Schnittstelle implementiert die anonyme innere Klasse diese Schnittstelle und überschreibt die Methode
//5.匿名内部类,没有类名称,必须借助接口
like = new ILike() {
    @Override
    public void testLambda() {
        System.out.println("i like lambda4");
    }
};
like.testLambda();


Viertens: Verwenden Sie Lambda, um das Schreiben anonymer innerer Klassen zu vereinfachen

  1. Die anonyme innere Klasse dient dazu, das Schreiben des Klassennamens zu speichern
  2. Die Lambda-Vereinfachung kann nicht nur den Klassennamen, sondern auch den Schnittstellennamen und den Funktionsnamen speichern. Da es nur eine abstrakte Methode gibt, können Sie diese abstrakte Methode und den Methodenkörper direkt implementieren und darauf verweisen
//6.用lambda简化,因为接口中只有一个函数,所以可以直接省略实例化的接口名和函数名
like = () -> {
    System.out.println("i like lambda5");
};
like.testLambda();

abschließend

  1. Die Prämisse des anonymen Funktionsschreibens und des anonymen Klassenschreibens muss auf funktionalen Schnittstellen basieren
  2. Das Schreiben anonymer Funktionen und das Schreiben anonymer Klassen sind im Wesentlichen dasselbe, aber das vereinfachte Schreiben ist unterschiedlich
  3. Wenn Sie einen Lambda-Ausdruck verwenden, um eine anonyme Funktion abzukürzen, können Sie den Namen der Implementierungsklasse und den Namen der Funktion gleichzeitig weglassen. Darüber hinaus kann auch die traditionelle Schrift verwendet werden
     

Acho que você gosta

Origin blog.csdn.net/m0_69057918/article/details/131108142
Recomendado
Clasificación