java反射机制 Refelction 反射映象倒影 即是 动态获取类有哪些属性和方法
在java里面
我们可以用反射机制在程序运行时 加载 探知 使用 编译期间完全未知的class 不包括方法定义
package month9;
import java.lang.reflect.Method;
public class InvokeTester {
public int add(int a,int b){
return a+b;
}
public String echo(String name){
return name;
}
public static void main(String[] args) throws Exception{
Class<?> classType = InvokeTester.class; //获取需要反射操作的对象
Object invokeTester = classType.newInstance(); //运用newInstance()来生成这个新获取方法的实例
Method addMethod = classType.getMethod("add",new Class[]{int.class,int.class});//获取你想要调用哪个方法
Object result = addMethod.invoke(invokeTester,new Object[]{1,2}); //传递参数
System.out.println((Integer)result); //把Object对象强制转换为Integer值
System.out.println("----------------------"); //华丽的分隔线
Method echoMethod = classType.getMethod("echo",new Class[]{String.class});
Object result2 = echoMethod.invoke(invokeTester, new Object[]{"tom"});
System.out.println((String)result2);
}
}
运行截图