Rumah Java javaTutorial 通过Java反射调用方法

通过Java反射调用方法

Dec 12, 2016 pm 01:00 PM
refleksi java

通过Java反射调用方法

这是个测试用的例子,通过反射调用对象的方法。

TestRef.java

import java.lang.reflect.Method; 
import java.lang.reflect.InvocationTargetException; 

/** 
* Created by IntelliJ IDEA. 
* File: TestRef.java 
* User: leizhimin 
* Date: 2008-1-28 14:48:44 
*/ 
public class TestRef { 

    public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException { 
        Foo foo = new Foo("这个一个Foo对象!"); 
        Class clazz = foo.getClass(); 
        Method m1 = clazz.getDeclaredMethod("outInfo"); 
        Method m2 = clazz.getDeclaredMethod("setMsg", String.class); 
        Method m3 = clazz.getDeclaredMethod("getMsg"); 
        m1.invoke(foo); 
        m2.invoke(foo, "重新设置msg信息!"); 
        String msg = (String) m3.invoke(foo); 
        System.out.println(msg); 
    } 
} 

class Foo { 
    private String msg; 

    public Foo(String msg) { 
        this.msg = msg; 
    } 

    public void setMsg(String msg) { 
        this.msg = msg; 
    } 

    public String getMsg() { 
        return msg; 
    } 

    public void outInfo() { 
        System.out.println("这是测试Java反射的测试类"); 
    } 
}
Salin selepas log masuk

控制台输出结果:

这是测试Java反射的测试类 
重新设置msg信息! 

Process finished with exit code 0
Salin selepas log masuk


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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kejuruteraan Songsang dengan Refleksi Java: Menyahmimiskan Kerja Dalaman Perisian Kejuruteraan Songsang dengan Refleksi Java: Menyahmimiskan Kerja Dalaman Perisian Feb 19, 2024 pm 11:20 PM

Refleksi Java ialah alat berkuasa yang membolehkan anda mengakses medan peribadi dan kaedah kelas, dengan itu mendedahkan kerja dalaman perisian. Ini berguna dalam bidang seperti kejuruteraan terbalik, analisis perisian dan penyahpepijatan. Untuk menggunakan refleksi Java, anda perlu mengimport pakej java.lang.reflect terlebih dahulu. Kemudian, anda boleh menggunakan kaedah Class.forName() untuk mendapatkan objek Kelas sesuatu kelas. Sebaik sahaja anda mempunyai objek Kelas, anda boleh menggunakan pelbagai kaedah untuk mengakses medan dan kaedah kelas. Sebagai contoh, anda boleh menggunakan kaedah getDeclaredFields() untuk mendapatkan semua medan kelas, termasuk medan peribadi. Anda juga boleh menggunakan kaedah getDeclaredMethods().

Bagaimana untuk mendapatkan nilai atribut dalam refleksi java Bagaimana untuk mendapatkan nilai atribut dalam refleksi java Jan 03, 2024 pm 03:05 PM

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. Tetapkan medan melalui setAccessible (benar) Dalam keadaan boleh diakses, medan peribadi pun boleh mendapatkan nilainya; 4. Lintas tatasusunan medan, dapatkan nama dan nilai yang sepadan bagi setiap medan dan cetaknya.

Apakah prinsip mekanisme pantulan Java? Apakah prinsip mekanisme pantulan Java? Jun 21, 2023 am 10:53 AM

Prinsip mekanisme pantulan Java ialah apabila fail bytecode dimuatkan ke dalam memori, jvm akan membedah bytecode dan mencipta objek Class bagi objek tersebut. Jvm menyimpan semua maklumat fail bytecode ke dalam objek Class objek Kelas, anda boleh menggunakan objek untuk menetapkan sifat atau kaedah objek, dsb. Mekanisme pantulan ialah fungsi untuk mengetahui semua atribut dan kaedah mana-mana kelas dalam keadaan berjalan Untuk sebarang objek, ia boleh memanggil mana-mana atribut dan kaedahnya, memperoleh maklumat secara dinamik, dan memanggil kaedah objek secara dinamik.

Bagaimana untuk membuat objek menggunakan mekanisme refleksi Java? Bagaimana untuk membuat objek menggunakan mekanisme refleksi Java? Apr 15, 2024 pm 04:18 PM

Langkah-langkah untuk mencipta objek melalui mekanisme refleksi Java adalah seperti berikut: Muatkan kelas sasaran: Gunakan kaedah Class.forName(). Dapatkan pembina: gunakan kaedah getDeclaredConstructor(). Cipta objek: Gunakan kaedah newInstance() untuk menghantar parameter.

Pemahaman mendalam tentang prinsip dan aplikasi mekanisme refleksi Java Pemahaman mendalam tentang prinsip dan aplikasi mekanisme refleksi Java Dec 23, 2023 am 09:09 AM

Pemahaman mendalam tentang prinsip dan aplikasi mekanisme refleksi Java 1. Konsep dan prinsip mekanisme refleksi Mekanisme refleksi merujuk kepada keupayaan untuk memperoleh maklumat kelas secara dinamik, mengakses dan mengendalikan ahli kelas (sifat, kaedah, pembina, dll.) manakala program sedang berjalan. Melalui mekanisme pantulan, kita boleh mencipta objek secara dinamik, kaedah panggilan dan sifat akses semasa program berjalan, tanpa mengetahui maklumat khusus kelas pada masa penyusunan. Teras mekanisme pantulan ialah kelas dan antara muka dalam pakej java.lang.reflect. Antaranya, kelas Kelas mewakili bait kelas

Dalam senario apakah NoSuchFieldException berlaku di Java? Dalam senario apakah NoSuchFieldException berlaku di Java? Jun 25, 2023 am 11:51 AM

Pengecualian NoSuchFieldException dalam Java merujuk kepada pengecualian yang dilemparkan apabila cuba mengakses medan yang tidak wujud (Field) semasa refleksi. Di Java, refleksi membolehkan kami memanipulasi kelas, kaedah, pembolehubah, dll. dalam atur cara melalui kod, menjadikan atur cara lebih fleksibel dan berskala. Walau bagaimanapun, apabila menggunakan refleksi, jika medan yang diakses tidak wujud, NoSuchFieldException akan dibuang. NoSuchFieldException

Bagaimana untuk mendapatkan sifat dan nilai objek menggunakan refleksi java Bagaimana untuk mendapatkan sifat dan nilai objek menggunakan refleksi java Jan 03, 2024 pm 02:43 PM

Kaedah mendapatkan: 1. Buat kelas Orang dan dapatkan objek Kelas kelas melalui refleksi 2. Gunakan kaedah getDeclaredFields untuk mendapatkan semua medan kelas 3. Dengan melintasi tatasusunan medan, tetapkan medan kepada keadaan yang boleh diakses; dan kemudian gunakan get Kaedah mendapat nilai medan dan mencetak nama dan nilai medan.

Apakah kaedah panggilan refleksi java Apakah kaedah panggilan refleksi java Dec 22, 2023 pm 05:09 PM

Kaedah panggilan refleksi java ialah: 1. Kelas kelas 2. Kelas pembina; 4. Kelas kelas; Pengenalan terperinci: 1. Kelas kelas, digunakan untuk mendapatkan maklumat kelas, termasuk nama kelas, pembolehubah ahli dan kaedah, dsb. Anda boleh mencipta contoh kelas melalui kaedah "newInstance()" kelas Kelas 2. Pembina; digunakan untuk mendapatkan jenis parameter Pembina, pengubah suai, jenis pulangan dan maklumat lain, dsb.

See all articles