回顾反射机制Method

package com.demo.service;

public interface SayHello {
    void sayHello(String name);
}

  

接口实现类

package com.demo.service.impl;

import com.demo.service.SayHello;

public class SayHelloImpl implements SayHello {

    @Override
    public void sayHello(String name) {
        System.out.println("hello"+name);
    }
}

  

测试主函数

package com.demo.service;

import com.demo.service.impl.SayHelloImpl;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Test {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        SayHelloImpl demo = new SayHelloImpl();
        //获取sayHello方法对应的Method类对象
        /**
         * getMethod(String name, Class<?>... parameterTypes)
         * 1.方法的名称,String类型
         * 2.参数类型
         */
        Method method = SayHello.class.getMethod("sayHello", String.class);
        /**
         * 通过Method对象的invoke()可以执行sayHello方法调用
         * 1.Object 表示对象,要执行对象的方法
         * 2.Object...args 方法执行是的参数值
         */
        //表示执行demo这个对象的sayHello方法,参数是李四
      //当需要执行其他对象的sayHello方法时,只需要替换对象即可实现 method.invoke(demo,"李四"); } }

  

posted on 2021-03-15 18:13  暮雨轻风  阅读(26)  评论(0编辑  收藏  举报