Heim > Java > javaLernprogramm > Analyse von Java-Lambda-Ausdrücken und generischen Anwendungsbeispielen

Analyse von Java-Lambda-Ausdrücken und generischen Anwendungsbeispielen

PHPz
Freigeben: 2023-05-03 18:16:07
nach vorne
1046 Leute haben es durchsucht

Generika

Grammatikdefinition von Generika

Klassenklassenname { private generische Kennung 1, Variablenname; häufig verwendete generische Kennungen: T, E, K ,V } Normale Schreibmethode darin

public class GenericDemo<K> {
    //定义数组
    private K[] arr;
}
Nach dem Login kopieren

Unter Verwendung der Syntax von Generika

  • Klassenname Objektname = neuer Klassenname()

  • jdk1.7 Danach kann Folgendes sein: weggelassen

  • Klassenname Objektname = neuer Klassenname <> ()

generische Zusammenfassung

  • Typisierung der Parameter, wodurch die Definition einer Klasse universeller wird

  • Generics unterstützen keine Basistypen, da Basistypen zur Kompilierungszeit nicht in Object konvertiert werden können Dieselbe generische Klasse kann logischerweise als mehrere verschiedene Typen betrachtet werden, aber in Wirklichkeit sind sie vom gleichen Typ. Beispiel: Sogar der Typ T des Generikums muss konsistent sein und der geschriebene Inhalt muss derselbe sein.)

  • Wenn die übergeordnete Klasse keinen Typ angibt, muss die übergeordnete Klasse als Objekttyp behandelt werden
  • public class Child<T> extends Parent<T> {
    }
    Nach dem Login kopieren

    Der child Die Klasse ist nicht generisch und die übergeordnete Klasse muss den generischen Typ angeben.

  • Wenn die übergeordnete Klasse den Typ nicht angibt, muss die übergeordnete Klasse ihn als Objekttyp behandeln.
  • Generische Schnittstelle

Die Syntaxdefinition der generischen Schnittstelle: Schnittstellenschnittstellenname< ; Generische Kennung 2, …>{ Generische Kennung Methodenname (); … Die Schnittstelle muss konsistent sein. Wenn der Typ nicht angegeben ist, wird die Schnittstelle gemäß dem Objekttyp verarbeitet. Die Implementierungsklasse ist nicht generisch und die Schnittstelle muss den Datentyp der generischen Schnittstelle angeben . Wenn die Schnittstelle den Typ nicht angibt, wird die Schnittstelle gemäß dem Objekttyp verarbeitet ; Funktionsdenken versucht, das komplexe Schreiben von Objekten zu ignorieren und „betont, was zu tun ist, nicht die Form, in der es getan werden soll“ Definieren eines Funktionsausdrucks anstelle einer vereinfachten Methode zum Schreiben eines Funktionsaufrufs

Lambda-Ausdrucksformat

Drei Elemente: formale Parameter, Pfeil, Codeblock

    Form als: (formeller Parameter)-> Codeblock
  • formale Parameter, trennen Sie diese durch Kommas, lassen Sie leere Klammern und keine Leerzeichen stehen.
  • -> zeigt die Ausführung an
  • Codeblock: bestimmte zu erledigende Dinge

Voraussetzungen für die Verwendung: Schnittstelle verwenden: Es gibt und gibt nur eine abstrakte Methode in der Schnittstelle

  • Codebeispiel:

    package com.lambda;
    public class Lambda {
        public static void main(String[] args) {
            //正常写法
            Mythread mythread = new Mythread();
            Thread t = new Thread(mythread);
            t.start();
            //匿名内部类
            new Thread(new Runnable() {
                @Override
                public void run() {
                    System.out.println("多线程1就绪了");
                }
            }).start();
            //lambda表达式:创建线程
            new Thread(()->{
                System.out.println("多线程2就绪了");
            }).start();
        }
    }
    class Mythread implements Runnable{
        @Override
        public void run() {
            System.out.println("多线程就绪");
        }
    }
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonAnalyse von Java-Lambda-Ausdrücken und generischen Anwendungsbeispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage