Rumah  >  Artikel  >  Java  >  Bagaimanakah mekanisme pantulan Java berfungsi dengan pemantul itu sendiri?

Bagaimanakah mekanisme pantulan Java berfungsi dengan pemantul itu sendiri?

WBOY
WBOYasal
2024-05-04 08:57:02399semak imbas

Mekanisme pantulan Java membolehkan penerokaan pemantul itu sendiri, dan anda boleh mendapatkan anotasi pada objek Kaedah melalui pantulan, termasuk jenis dan nilai anotasi.

Bagaimanakah mekanisme pantulan Java berfungsi dengan pemantul itu sendiri?

Mekanisme pantulan Java digunakan dalam pemantul itu sendiri

Mekanisme pantulan Java membenarkan atur cara untuk memeriksa dan mengubah suai struktur kelas pada masa jalanan, tetapi jarang digunakan untuk meneroka mekanisme pantulan itu sendiri. Artikel ini akan menggunakan kes praktikal untuk menunjukkan cara menggunakan mekanisme pantulan untuk mengkaji operasi pemantul.

Kes: Dapatkan Anotasi pada objek Method Method 对象上的 Annotation

我们可以使用反射来获取 Method 对象上附加的注解。以下是示例代码:

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

public class Main {
    public static void main(String[] args) {
        try {
            // 获取 Method 对象
            Method method = Main.class.getMethod("annotatedMethod");
            
            // 使用反射获取注解
            Annotation[] annotations = method.getAnnotations();
            
            // 遍历并打印注解
            for (Annotation annotation : annotations) {
                System.out.println(annotation);
            }
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
    
    @MyAnnotation("Hello, World!")
    public void annotatedMethod() { }
}

结果:

@MyAnnotation(value=Hello, World!)

解析:

  • 我们首先使用 Main.class.getMethod("annotatedMethod") 获取 Main 类的 annotatedMethod 方法的 Method 对象。
  • 然后,我们使用 method.getAnnotations() 获取该方法上的所有注解,并将其存储在 annotations 数组中。
  • 最后,我们遍历 annotations 数组,并打印每个注解的类型和值。

这个示例展示了如何使用反射机制来获取 Method

    Kita boleh menggunakan refleksi untuk mendapatkan anotasi yang dilampirkan pada objek Method. Berikut ialah contoh kod:
  • rrreee
  • Keputusan:
  • rrreee
Analisis: 🎜🎜🎜🎜 Kami mula-mula menggunakan Main.class.getMethod("annotatedMethod") untuk mendapatkan Objek <code>Method kaedah annotatedMethod kelas. 🎜🎜Kemudian kami menggunakan method.getAnnotations() untuk mendapatkan semua anotasi pada kaedah dan menyimpannya dalam tatasusunan anotasi. 🎜🎜Akhir sekali, kami mengulangi tatasusunan anotasi dan mencetak jenis dan nilai setiap anotasi. 🎜🎜🎜Contoh ini menunjukkan cara menggunakan mekanisme pantulan untuk mendapatkan anotasi pada objek Kaedah. Prinsip yang sama boleh digunakan untuk meneroka mana-mana aspek lain mekanisme pantulan, contohnya: 🎜🎜🎜 Dapatkan kelas induk dan antara muka kelas 🎜🎜 Dapatkan jenis dan nilai medan 🎜🎜 Ubah suai sifat kelas ( seperti hak akses) 🎜🎜

Atas ialah kandungan terperinci Bagaimanakah mekanisme pantulan Java berfungsi dengan pemantul itu sendiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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