java 反射機制 之 getMethods獲取所有公有方法 和 getDeclaredMethods 獲取本類所有方法
阿新 • • 發佈:2019-01-31
檔案結構:
Person:
package demo2; public class Person { private int age; private String name; public Person( String name,int age) { this.age = age; this.name = name; System.out.println("建構函式Person(有引數)執行"); } public Person() { System.out.println("建構函式Person(無引數)執行"); } //公有 有參方法 public void public_show(String str,int i) { System.out.println("public show "+str+"..."+i); } //公有 無參方法 public void public_prin() { System.out.println("public prin"); } //私有 有參方法 private void private_show(String str,int i) { System.out.println("private show "+str+"..."+i); } //私有 無參方法 private void private_prin() { System.out.println("private prin"); } }
Main:
執行結果:package Main; import java.lang.reflect.Method; public class Main { public static void main(String[] args) throws Exception { //獲取位元組碼檔案中 方法 String classname = "demo2.Person"; //尋找名稱的類檔案,載入進記憶體 產生class物件 Class cl = Class.forName(classname); //1.獲取所有公有方法的getMethods() Method[] publie_Method=cl.getMethods(); //獲取所有公有方法 System.out.println("Person所有公有方法:"); for(Method m:publie_Method) { System.out.println(m); } //2.獲取本類中的所有的方法(私有 公共 保護) Method[] all_Method=cl.getDeclaredMethods();//獲取本類中的所有方法 (只拿本類中的) System.out.println("Person本類中的所有方法:"); for(Method m:all_Method) { System.out.println(m); } } }