该方法搭配注解使用,可以使代码显得很美观,也有利于后续的业务拓展,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));
- }
- }
输出结果