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,"李四"); } }