該方法搭配註解使用,可以使代碼顯得很美觀,也有利於後續的業務拓展,SpringMVC的controller就是基於該方法實現的
上代碼
MethodTest類
- package com.test;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.util.HashMap;
- public class MethodTest { public static void main(String[] args) {
- HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
- hashMap.put(1, “Hello UI!”);
- Class<?> clazz = UITest.class;
- try {
- // getMethod方法的第一個參數是方法名,第二個參數是對應方法的參數(Java存在方法重載)
- // 如果該方法有多個參數,在後面繼續加參數即可
- Method method = clazz.getMethod(“getData”, HashMap.class);
- method.invoke(clazz.newInstance(), hashMap);
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (InstantiationException e) {
- e.printStackTrace();
- }
- }
- }
UITest類
- package com.test;
- import java.util.HashMap;
- public class UITest {
- public UITest(){
- System.out.println(“UITest executed!”);
- }
- public void getData(HashMap<String, Object> hashMap){
- System.out.println(hashMap.get(1));
- }
- }
輸出結果