通过反射机制,执行Test类中的add()方法
1.创建两个java文件Test.java和Main.java文件
(https://img-blog.csdn.net/20180909190228471?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25iYV9saW5zaHVoYW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2.Test.java代码如下
package com.company;
public class Test {
public void add(int num1,int num2){
System.out.println(num1+num2);
}
}
3.Main.java代码如下
package com.company;
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception{
// 思路:得到Testlei中的add方法,然后执行add方法
//1、获取对象类型.
Class<?> classType=Class.forName("com.company.Test");
//2、获取方法add,已经知道方法名add
//()内也可以写为("add",new Class[]{int.class,int.class})
Method method=classType.getMethod("add", int.class, int.class);
//3、通过无参构造方法创建Test类对象
Object test=classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
//4.执行add方法
method.invoke(test,12,100);
//method.invoke(test,new Object[]{12,100});
//执行结果为:112
}
}