Rumah > Java > javaTutorial > Analisis ungkapan lambda Java dan contoh aplikasi generik

Analisis ungkapan lambda Java dan contoh aplikasi generik

PHPz
Lepaskan: 2023-05-03 18:16:07
ke hadapan
1033 orang telah melayarinya

Generik

Takrif tatabahasa generik

nama kelas kelas{ pengecam generik peribadi 1, nama pembolehubah yang biasa digunakan Pengecam generik: T, E, K, V } Kaedah penulisan biasa

public class GenericDemo<K> {
    //定义数组
    private K[] arr;
}
Salin selepas log masuk

Sintaks generik

  • Nama kelas Nama Objek = nama kelas baharu )

  • Selepas jdk1.7, <> berikut boleh ditinggalkan dan tidak ditulis

  • Nama kelas = nama Kelas baharu<>()

Ringkasan generik

  • Parameterisasi jenis menjadikan definisi kelas lebih universal

  • Generik tidak menyokong jenis asas kerana jenis asas tidak boleh ditukar kepada Objek pada masa penyusunan

  • Apabila kelas generik mencipta objek, jika tiada jenis data ditentukan, ia akan beroperasi mengikut jenis Objek

  • Kelas generik yang sama boleh dilihat secara logik sebagai berbilang Jenis yang berbeza, tetapi sebenarnya jenis yang sama

Terbitkan subkelas daripada kelas generik

Subkelas juga generik, dan generik subkelas dan kelas induk mestilah Konsisten (contohnya: walaupun jenis generik T mesti konsisten, dan kandungan bertulis mestilah sama ),

Jika kelas induk tidak menentukan jenis, kelas induk mesti menganggapnya sebagai jenis Objek

public class Child<T> extends Parent<T> {
}
Salin selepas log masuk

Subkelas bukan Generik, kelas induk mesti menentukan jenis generik,

Jika kelas induk tidak menyatakan jenisnya, kelas induk mesti mengendalikannya mengikut jenis Objek

Antara muka generik

  • Takrifan sintaks antara muka generik: nama antara muka {nama kaedah pengenalan generik (); … . Generik kelas pelaksanaan dan antara muka mesti konsisten Jika antara muka tidak menentukan jenis, antara muka mesti diproses mengikut jenis Objek

  • Kelas pelaksanaan ialah bukan generik. Antara muka mesti menjelaskan jenis data antara muka generik Jika antara muka tidak menyatakan jenis, antara muka akan diproses mengikut jenis Objek

  • ekspresi lambda<🎜. >

    konsep ekspresi lambda

Pengaturcaraan berorientasikan objek menekankan bahawa perkara mesti dilakukan dalam bentuk objek pemikiran berfungsi cuba mengabaikan penulisan objek yang kompleks, "menekankan apa untuk dilakukan, bukan bentuk untuk melakukannya"

  • ungkapan lambda ialah penjelmaan idea fungsi

  • ungkapan lambda ialah cara yang dipermudahkan untuk mentakrifkan ungkapan berfungsi, bukan cara ringkas untuk menulis panggilan fungsi

  • format ungkapan lambda

Tiga elemen: parameter formal, anak panah, blok kod

  • borang Contohnya: (parameter formal) ->Blok kod

  • Parameter formal Jika terdapat berbilang parameter, pisahkan dengan koma. Jika tiada parameter, tinggalkan kurungan kosong dan tiada ruang.

  • -> >

    Blok kod: perkara khusus yang perlu dilakukan

  • Prasyarat untuk digunakan: Gunakan antara muka: Terdapat dan hanya satu kaedah abstrak dalam antara muka

  • Contoh kod:

    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("多线程就绪");
        }
    }
    Salin selepas log masuk

    Atas ialah kandungan terperinci Analisis ungkapan lambda Java dan contoh aplikasi generik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan