请问怎么利用java反射给方法的行参赋值
1个回答
展开全部
import java.lang.reflect.Method;
public class Test
{
public int add(int param1, int param2)
{
return param1 + param2;
}
public String echo(String message)
{
return "hello: " + message;
}
public static void main(String[] args) throws Exception
{
/** 常规方法,先生成对象,然后通过对象的引用来调用相应的方法 */
// Test test = new Test();
// System.out.println(test.add(1, 2));
// System.out.println(test.echo("tom"));
/** 通过反射的方式 */
//获取类的class对象
Class<?> classType = Test.class;
//生成class对象的实例
Object test = classType.newInstance();
//获取method对象
Method addMethod = classType.getMethod("add", new Class[] { int.class,
int.class });
//调用invoke方法,传入要调用方法所对应的class对象, 传入实参
Object result = addMethod.invoke(test, new Object[]{1, 2});
System.out.println((Integer)result);
System.out.println("---------------------");
//以下同理
Method echoMethod = classType.getMethod("echo", new Class[]{String.class});
Object result2 = echoMethod.invoke(test, new Object[]{"tom"});
System.out.println((String)result2);
}
}
通过例子来给你讲解,希望采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询