Rumah > Java > javaTutorial > teks badan

Bagaimana untuk mendapatkan nilai atribut dalam refleksi java

小老鼠
Lepaskan: 2024-01-03 15:05:39
asal
1412 orang telah melayarinya

Kaedah mendapatkan: 1. Buat objek sampel; 2. Dapatkan nilai medan melalui medan.get(orang), di mana orang ialah objek sampel, dan medan ialah objek Medan, mewakili medan 3. Melalui setAccessible (benar) Tetapkan medan kepada keadaan boleh diakses, malah medan peribadi boleh mendapatkan nilainya; 4. Lintas tatasusunan medan, dapatkan nama dan nilai yang sepadan bagi setiap medan, dan cetaknya.

Bagaimana untuk mendapatkan nilai atribut dalam refleksi java

Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.

Di Java, anda boleh menggunakan mekanisme pantulan untuk mendapatkan nilai sifat objek. Dalam contoh sebelumnya, kami telah menunjukkan cara menggunakan refleksi untuk mendapatkan nilai sifat objek Berikut ialah bahagian kod utama:

import java.lang.reflect.Field;
public class ReflectExample {
    public static void main(String[] args) throws IllegalAccessException {
        // 创建一个示例对象
        Person person = new Person("John", 25, "123 Main St");
        // 获取Class对象
        Class<?> clazz = person.getClass();
        // 获取类的所有字段(包括私有字段)
        Field[] fields = clazz.getDeclaredFields();
        // 遍历字段数组
        for (Field field : fields) {
            // 设置字段为可访问,即使是私有字段也可以访问
            field.setAccessible(true);
            // 获取字段的名称
            String fieldName = field.getName();
            // 获取字段的值
            Object fieldValue = field.get(person);
            // 打印字段名和值
            System.out.println(fieldName + ": " + fieldValue);
        }
    }
}
// 示例类
class Person {
    private String name;
    private int age;
    private String address;
    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }
}
Salin selepas log masuk

Dalam contoh di atas, nilai medan diperoleh melalui field.get(person. ), di mana orang ialah objek Contoh, manakala medan ialah objek Medan, mewakili medan. Dengan menetapkan medan kepada keadaan boleh diakses melalui setAccessible(true), malah medan peribadi boleh mendapatkan nilainya.

Lintas tatasusunan medan, dapatkan nama dan nilai yang sepadan bagi setiap medan, dan cetaknya. Perlu diingatkan bahawa mendapatkan nilai medan persendirian melalui refleksi memerlukan perhatian terhadap keselamatan dan enkapsulasi.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai atribut dalam refleksi java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!