欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java反射简单介绍

程序员文章站 2022-03-09 21:36:51
...



package testReflect;

import java.lang.reflect.*;
public class TestReflect {
public int add(int param1,int param2){
return param1+param2;
}
public String echo(String msg){
return "echo:"+msg;
}
public static void main(String[] args) throws Exception{
Class<TestReflect> classType=TestReflect.class;
Object invokeTester=classType.newInstance();
//调用InvokeTester对象的add()方法

Method addMethod=classType.getMethod("add",new Class[]{int.class,int.class});
Object result=addMethod.invoke(invokeTester,new Object[]{new Integer(100),new Integer(200)});
System.out.println((Integer)result);
//调用InvokeTester对象的echo()方法
Method echoMethod=classType.getMethod("echo",new Class[]{String.class});
result=echoMethod.invoke(invokeTester,new Object[]{"Hello"});
System.out.println((String)result);
}

}


Method类的invoke(Object obj, Object args[])方法用于动态执行一个对象的特定方法。
第一个obj 参数指定具有该方法的对象;
第二个args 参数指定向该方法传递的参数,该参数必须为对象,如果参数为基本类型数据,必须转换为相应的包装类型的对象;
invoke()方法的返回值总是对象,如果实际被调用的方法的返回类型是基本类型数据,那么invoke()方法会把它转换为相应的包装类型的对象,再将其返回。
相关标签: 反射