Java反射(四) 方法Method

Java的方法反射和成員變量反射有點像,通過getMethod(String name,Class... params)來得到帶參數的public的方法

getDeclaredMethod(String name,Class... param)得到帶參數的方法。方法調用用method.invoke(Object obj,Obj... param),這麼調用相當於obj.method(param)。如果是靜態方法,前一個obj就用null,如果沒有參數,不用寫第二個參數,如果方法是私有的,調用前一定要setAccessable(true) 下面是示例:

static void test() throws Exception{
		Method methodChartAt=String.class.getMethod("charAt", int.class);
		System.out.println(methodChartAt.invoke("abc", 1));
		
		Method methodTreasre=new Client().getClass().getDeclaredMethod("treasure");//這個類類名叫Client
		methodTreasre.setAccessible(true);
		System.out.println(methodTreasre.invoke(new Client()));
		
		Method methodValueOf=String.class.getMethod("valueOf", boolean.class);
		System.out.println(methodValueOf.invoke(null, false));
	}
	
	private String treasure(){
		return "this is a secret treasure";
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章