请问怎么利用java反射给方法的行参赋值

 我来答
萧瑟如枫啊
2018-05-12 · 超过36用户采纳过TA的回答
知道小有建树答主
回答量:82
采纳率:0%
帮助的人:31.3万
展开全部
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);
        
        
    }
}

通过例子来给你讲解,希望采纳
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式