Rumah  >  Artikel  >  Java  >  Apakah mekanisme refleksi Java dan cara mendapatkannya

Apakah mekanisme refleksi Java dan cara mendapatkannya

王林
王林ke hadapan
2023-05-10 19:07:041641semak imbas

Mekanisme pantulan Java

Mekanisme pantulan Java berada dalam keadaan berjalan Untuk mana-mana kelas, semua sifat dan kaedah kelas ini boleh diperolehi, dan untuk mana-mana objek, mana-mana sifat dan kaedahnya boleh dipanggil. kaedah. Fungsi mendapatkan maklumat secara dinamik dan memanggil kaedah objek secara dinamik pada masa jalan dipanggil mekanisme refleksi Java. Kelas

Kelas menyokong konsep refleksi bersama-sama dengan perpustakaan kelas java.lang.reflect, yang mengandungi kelas Field, Method dan Constructor (setiap kelas melaksanakan antara muka Ahli). Objek jenis ini dicipta oleh JVM pada masa jalan untuk mewakili ahli kelas yang tidak diketahui yang sepadan. Dengan cara ini anda boleh menggunakan Pembina untuk mencipta objek baharu, menggunakan kaedah get() dan set() untuk membaca dan mengubah suai medan yang dikaitkan dengan objek Medan dan menggunakan kaedah invoke() untuk memanggil kaedah yang dikaitkan dengan objek Kaedah.

Selain itu, anda juga boleh memanggil kaedah yang mudah seperti getFields() getMethods() dan getConstructors() untuk mengembalikan tatasusunan objek yang mewakili medan, kaedah dan pembina. Dengan cara ini, maklumat objek tanpa nama
boleh ditentukan sepenuhnya pada masa jalan, tanpa mengetahui apa-apa pada masa penyusunan.

package com.microSpringboot.ReadingList.reflect;

import java.lang.reflect.Constructor;

public class ReflectTest {

    public static void main(String[] args) throws Exception {
        Class clazz = null;
        clazz = Class.forName("com.microSpringboot.ReadingList.reflect.Fruit");
        Constructor<Fruit> constructor1 = clazz.getConstructor();
        Constructor<Fruit> constructor2 = clazz.getConstructor(String.class);
        Fruit fruit1 = constructor1.newInstance();
        Fruit fruit2 = constructor2.newInstance("Apple");
    }
}


class Fruit {

    public Fruit() {
        System.out.println("无参构造器 Run...........");
    }

    public Fruit(String type) {
        System.out.println("有参构造器 Run..........." + type);
    }
}
rrree

Tiga cara untuk mendapatkan refleksi dalam Java

1 Melaksanakan mekanisme pantulan melalui objek baharu

2. Laksanakan mekanisme pantulan melalui laluan

3 . Nama kelas melaksanakan mekanisme refleksi

运行结果: 无参构造器 Run……….. 有参构造器 Run………..Apple
rrree

Atas ialah kandungan terperinci Apakah mekanisme refleksi Java dan cara mendapatkannya. 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