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

Analisis ungkapan lambda Java dan contoh aplikasi generik

PHPz
PHPzke hadapan
2023-05-03 18:16:07980semak imbas

Generik

Takrif tatabahasa generik

nama kelas kelas83926cda098b78bb75d6b29f03daaf31{ 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;
}

Sintaks generik

  • Nama kelas ec1c25504dd9665df41b95f93baa8557 Nama Objek = nama kelas baharu 69afe0b644232c8d6c3962b6474705cf )

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

  • Nama kelasec1c25504dd9665df41b95f93baa8557 = nama Kelas baharua8093152e673feb7aba1828c43532094()

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> {
}

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 347f20e1cfb01f8295ced880e79001dd{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("多线程就绪");
        }
    }

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam