Rumah > Java > javaTutorial > teks badan

Bolehkah Java Reflection Mengakses Medan Peribadi?

Patricia Arquette
Lepaskan: 2024-10-28 06:02:02
asal
524 orang telah melayarinya

Can Java Reflection Access Private Fields?

Mengakses Medan Peribadi melalui Refleksi dalam Java

Soalan: Bolehkah mekanisme refleksi Java digunakan untuk mengakses medan peribadi, seperti medan str dalam coretan kod berikut?

<code class="java">public class Test {

   private String str;
   public void setStr(String value) { str = value; }
}</code>
Salin selepas log masuk

Jawapan: Ya, adalah mungkin untuk mengakses medan peribadi melalui refleksi. Walau bagaimanapun, kebenaran keselamatan mesti diberikan dan setAccessible(true) mesti digunakan apabila mengakses medan daripada kelas lain.

Pertimbangkan contoh berikut:

<code class="java">import java.lang.reflect.*;

public class Other {

    private String str;
    public void setStr(String value) { str = value; }
}

public class Test {

    public static void main(String[] args) throws Exception {

        Other t = new Other();
        t.setStr("hi");
        Field field = Other.class.getDeclaredField("str");
        field.setAccessible(true);
        Object value = field.get(t);
        System.out.println(value);
    }
}</code>
Salin selepas log masuk

Nota: Amalan ini secara amnya tidak digalakkan kerana ia melanggar prinsip enkapsulasi yang ditetapkan oleh pengarang kelas asal. Semakan pengesahan atau kebergantungan pada medan lain mungkin dipintas, membawa kepada tingkah laku yang tidak dapat diramalkan.

Atas ialah kandungan terperinci Bolehkah Java Reflection Mengakses Medan Peribadi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
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!