Rumah Java javaTutorial 利用反射(invoke)来获取一个类中的方法

利用反射(invoke)来获取一个类中的方法

Jun 20, 2017 pm 05:15 PM
refleksi Operasi asas kaedah

 

本文接上文“反射之获取类的信息”,利用反射(invoke)来获取一个类中的方法来执行。

1、定义一个类,包含三个名称相同,参数不同的方法

 1 class A{ 2     public void print(){ 3         System.out.println("Hello,World"); 4     } 5  6     public void print(int a,int b){ 7         System.out.println(a+b); 8     } 9     public void print(String a,String b){10         System.out.println(a.toUpperCase()+","+b.toLowerCase());11     }12 }
Salin selepas log masuk

2、利用方法的反射(invoke)分别获取该类三个方法并执行

 1 public class Test { 2     public static void main(String[] args) { 3         /** 4          * 获取print(int,int)方法 5          * 1、获取类的类类型 6          */ 7         A a1 = new A(); 8         Class clazz = a1.getClass(); 9         /**10          * 2、获取方法(名称、参数列表)11          * getMethod()获取的是public方法12          * getDeclaredMethod()获取的是自己声明的方法13          */14         try {15 //            Method m = clazz.getMethod("print",new Class[]{int.class,int.class});16             Method m = clazz.getMethod("print", int.class, int.class);17             //方法的反射操作,用m对象进行方法调用,a1.print完全相同18             //方法没有返回值返回null,有返回值返回具体的返回值19 //            Object obj = m.invoke(a1,new Object[]{10,20});20             Object obj = m.invoke(a1,10,20);21 22             System.out.println("================================================");23 24             Method m2 = clazz.getMethod("print", String.class, String.class);25             m2.invoke(a1,"aaa","BBB");26 27             System.out.println("================================================");28 29             Method m3 = clazz.getMethod("print");30             m3.invoke(a1);31         } catch (Exception e) {32             e.printStackTrace();33         }34     }35 }
Salin selepas log masuk

3、完整代码

 1 package com.format.test; 2  3 import java.lang.reflect.Method; 4  5 /** 6  * Created by Format on 2017/6/3. 7  */ 8 public class Test { 9     public static void main(String[] args) {10         /**11          * 获取print(int,int)方法12          * 1、获取类的类类型13          */14         A a1 = new A();15         Class clazz = a1.getClass();16         /**17          * 2、获取方法(名称、参数列表)18          * getMethod()获取的是public方法19          * getDeclaredMethod()获取的是自己声明的方法20          */21         try {22 //            Method m = clazz.getMethod("print",new Class[]{int.class,int.class});23             Method m = clazz.getMethod("print", int.class, int.class);24             //方法的反射操作,用m对象进行方法调用,a1.print完全相同25             //方法没有返回值返回null,有返回值返回具体的返回值26 //            Object obj = m.invoke(a1,new Object[]{10,20});27             Object obj = m.invoke(a1,10,20);28 29             System.out.println("================================================");30 31             Method m2 = clazz.getMethod("print", String.class, String.class);32             m2.invoke(a1,"aaa","BBB");33 34             System.out.println("================================================");35 36             Method m3 = clazz.getMethod("print");37             m3.invoke(a1);38         } catch (Exception e) {39             e.printStackTrace();40         }41     }42 }43 44 class A{45     public void print(){46         System.out.println("Hello,World");47     }48 49     public void print(int a,int b){50         System.out.println(a+b);51     }52     public void print(String a,String b){53         System.out.println(a.toUpperCase()+","+b.toLowerCase());54     }55 }
Salin selepas log masuk
View Code

4、执行结果

 

Atas ialah kandungan terperinci 利用反射(invoke)来获取一个类中的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Cara menulis novel dalam aplikasi Novel Percuma Tomato Kongsi tutorial cara menulis novel dalam Novel Tomato. Cara menulis novel dalam aplikasi Novel Percuma Tomato Kongsi tutorial cara menulis novel dalam Novel Tomato. Mar 28, 2024 pm 12:50 PM

Novel Tomato adalah perisian membaca novel yang sangat popular Kami sering mempunyai novel dan komik baru untuk dibaca dalam Novel Tomato Setiap novel dan komik sangat menarik ingin menulis ke dalam teks. Jadi bagaimana kita menulis novel di dalamnya? Kongsi tutorial novel Tomato tentang cara menulis novel 1. Mula-mula buka aplikasi novel percuma Tomato pada telefon bimbit anda dan klik pada Pusat Peribadi - Pusat Penulis 2. Lompat ke halaman Pembantu Penulis Tomato - klik pada Buat buku baru di penghujung novel.

Bagaimana untuk memulihkan kenalan yang dipadam pada WeChat (tutorial mudah memberitahu anda cara memulihkan kenalan yang dipadam) Bagaimana untuk memulihkan kenalan yang dipadam pada WeChat (tutorial mudah memberitahu anda cara memulihkan kenalan yang dipadam) May 01, 2024 pm 12:01 PM

Malangnya, orang sering memadamkan kenalan tertentu secara tidak sengaja atas sebab tertentu WeChat ialah perisian sosial yang digunakan secara meluas. Untuk membantu pengguna menyelesaikan masalah ini, artikel ini akan memperkenalkan cara mendapatkan semula kenalan yang dipadam dengan cara yang mudah. 1. Fahami mekanisme pemadaman kenalan WeChat Ini memberi kita kemungkinan untuk mendapatkan semula kenalan yang dipadamkan Mekanisme pemadaman kenalan dalam WeChat mengalih keluar mereka daripada buku alamat, tetapi tidak memadamkannya sepenuhnya. 2. Gunakan fungsi "Pemulihan Buku Kenalan" terbina dalam WeChat menyediakan "Pemulihan Buku Kenalan" untuk menjimatkan masa dan tenaga Pengguna boleh mendapatkan semula kenalan yang telah dipadamkan dengan cepat melalui fungsi ini. 3. Masuk ke halaman tetapan WeChat dan klik sudut kanan bawah, buka aplikasi WeChat "Saya" dan klik ikon tetapan di sudut kanan atas untuk memasuki halaman tetapan.

Pelaksanaan mekanisme refleksi antara muka dan kelas abstrak di Jawa Pelaksanaan mekanisme refleksi antara muka dan kelas abstrak di Jawa May 02, 2024 pm 05:18 PM

Mekanisme pantulan membenarkan atur cara untuk mendapatkan dan mengubah suai maklumat kelas semasa runtime Ia boleh digunakan untuk melaksanakan refleksi antara muka dan kelas abstrak: Refleksi antara muka: mendapatkan objek pantulan antara muka melalui Class.forName() dan mengakses metadatanya (nama, kaedah dan. padang). Refleksi kelas abstrak: Sama seperti antara muka, anda boleh mendapatkan objek pantulan kelas abstrak dan mengakses metadata dan kaedah bukan abstraknya. Kes praktikal: Mekanisme pantulan boleh digunakan untuk melaksanakan proksi dinamik dan memintas panggilan ke kaedah antara muka pada masa jalan dengan mencipta kelas proksi secara dinamik.

Cara menggunakan refleksi untuk mengakses medan dan kaedah persendirian dalam golang Cara menggunakan refleksi untuk mengakses medan dan kaedah persendirian dalam golang May 03, 2024 pm 12:15 PM

Anda boleh menggunakan refleksi untuk mengakses medan dan kaedah peribadi dalam bahasa Go: Untuk mengakses medan peribadi: dapatkan nilai pantulan nilai melalui reflect.ValueOf(), kemudian gunakan FieldByName() untuk mendapatkan nilai pantulan medan dan panggil Kaedah String() untuk mencetak nilai medan . Panggil kaedah persendirian: dapatkan juga nilai pantulan nilai melalui reflect.ValueOf(), kemudian gunakan MethodByName() untuk mendapatkan nilai pantulan kaedah, dan akhirnya panggil kaedah Call() untuk melaksanakan kaedah. Kes praktikal: Ubah suai nilai medan persendirian dan panggil kaedah persendirian melalui refleksi untuk mencapai kawalan objek dan liputan ujian unit.

Bagaimana untuk menetapkan saiz fon pada telefon mudah alih (mudah melaraskan saiz fon pada telefon bimbit) Bagaimana untuk menetapkan saiz fon pada telefon mudah alih (mudah melaraskan saiz fon pada telefon bimbit) May 07, 2024 pm 03:34 PM

Menetapkan saiz fon telah menjadi keperluan pemperibadian yang penting kerana telefon mudah alih menjadi alat penting dalam kehidupan seharian manusia. Untuk memenuhi keperluan pengguna yang berbeza, artikel ini akan memperkenalkan cara meningkatkan pengalaman penggunaan telefon mudah alih dan melaraskan saiz fon telefon mudah alih melalui operasi mudah. Mengapa anda perlu melaraskan saiz fon telefon mudah alih anda - Melaraskan saiz fon boleh menjadikan teks lebih jelas dan mudah dibaca - Sesuai untuk keperluan membaca pengguna yang berbeza umur - Mudah untuk pengguna yang kurang penglihatan menggunakan saiz fon fungsi tetapan sistem telefon mudah alih - Cara memasukkan antara muka tetapan sistem - Dalam Cari dan masukkan pilihan "Paparan" dalam antara muka tetapan - cari pilihan "Saiz Fon" dan laraskan saiz fon dengan pihak ketiga aplikasi - muat turun dan pasang aplikasi yang menyokong pelarasan saiz fon - buka aplikasi dan masukkan antara muka tetapan yang berkaitan - mengikut individu

Rahsia penetasan telur naga mudah alih terbongkar (langkah demi langkah untuk mengajar anda cara berjaya menetas telur naga mudah alih) Rahsia penetasan telur naga mudah alih terbongkar (langkah demi langkah untuk mengajar anda cara berjaya menetas telur naga mudah alih) May 04, 2024 pm 06:01 PM

Permainan mudah alih telah menjadi sebahagian daripada kehidupan orang ramai dengan perkembangan teknologi. Ia telah menarik perhatian ramai pemain dengan imej telur naga yang comel dan proses penetasan yang menarik, dan salah satu permainan yang telah menarik perhatian ramai ialah versi mudah alih Dragon Egg. Untuk membantu pemain memupuk dan mengembangkan naga mereka sendiri dengan lebih baik dalam permainan, artikel ini akan memperkenalkan kepada anda cara menetas telur naga dalam versi mudah alih. 1. Pilih jenis telur naga yang sesuai Pemain perlu berhati-hati memilih jenis telur naga yang mereka suka dan sesuai dengan diri mereka, berdasarkan pelbagai jenis sifat dan kebolehan telur naga yang disediakan dalam permainan. 2. Tingkatkan tahap mesin pengeraman Pemain perlu meningkatkan tahap mesin pengeraman dengan menyelesaikan tugasan dan mengumpul prop Tahap mesin pengeraman menentukan kelajuan penetasan dan kadar kejayaan penetasan. 3. Kumpul sumber yang diperlukan untuk penetasan Pemain perlu berada dalam permainan

Perbezaan antara kaedah dan fungsi bahasa Go dan analisis senario aplikasi Perbezaan antara kaedah dan fungsi bahasa Go dan analisis senario aplikasi Apr 04, 2024 am 09:24 AM

Perbezaan antara kaedah dan fungsi bahasa Go terletak pada perkaitannya dengan struktur: kaedah dikaitkan dengan struktur dan digunakan untuk mengendalikan data struktur atau fungsi adalah bebas daripada jenis dan digunakan untuk melaksanakan operasi umum.

Cara memilih pelindung skrin telefon mudah alih untuk melindungi skrin telefon mudah alih anda (beberapa perkara utama dan petua untuk membeli pelindung skrin telefon mudah alih) Cara memilih pelindung skrin telefon mudah alih untuk melindungi skrin telefon mudah alih anda (beberapa perkara utama dan petua untuk membeli pelindung skrin telefon mudah alih) May 07, 2024 pm 05:55 PM

Filem telefon bimbit telah menjadi salah satu aksesori yang sangat diperlukan dengan populariti telefon pintar. Untuk memanjangkan hayat perkhidmatannya, pilih filem telefon mudah alih yang sesuai untuk melindungi skrin telefon mudah alih. Untuk membantu pembaca memilih filem telefon bimbit yang paling sesuai untuk diri mereka sendiri, artikel ini akan memperkenalkan beberapa perkara utama dan teknik untuk membeli filem telefon bimbit. Fahami bahan dan jenis filem telefon bimbit: Filem PET, TPU, dsb. Filem telefon mudah alih diperbuat daripada pelbagai bahan, termasuk kaca terbaja. Filem PET agak lembut, filem kaca terbaja mempunyai rintangan calar yang baik, dan TPU mempunyai prestasi kalis kejutan yang baik. Ia boleh diputuskan berdasarkan keutamaan dan keperluan peribadi semasa memilih. Pertimbangkan tahap perlindungan skrin Jenis filem telefon mudah alih yang berbeza mempunyai tahap perlindungan skrin yang berbeza. Filem PET terutamanya memainkan peranan anti-calar, manakala filem kaca terbaja mempunyai rintangan jatuh yang lebih baik. Anda boleh memilih untuk menjadi lebih baik

See all articles