为了账号安全,请及时绑定邮箱和手机立即绑定

根据方法名获取方法的值,类中出现了重载,怎么办

Method getMethod = c.getMethod(getMethodName);

我要是有两个相同名称,不同返回值的类型不同,这时候根据方法名获取的方法,就有两个方法了啊,就是说类中出现了重载,怎么办?


正在回答

3 回答

在括号里方法名后边,在填一个实参,对应该方法的类型就行了

0 回复 有任何疑惑可以回复我~
#1

qq_云在风中_0 提问者

能否描述的更清晰一点
2016-05-31 回复 有任何疑惑可以回复我~
#2

qq_云在风中_0 提问者

括号里的方法名后面跟的不是实参,是参数列表类型
2016-05-31 回复 有任何疑惑可以回复我~
	Demo mDemo = new Demo("abc");
        Class c = mDemo.getClass();
        Method method = c.getMethod("putOut", String.class);
        String string = (String) method.invoke(mDemo, "123");
        System.out.println(string);

测试代码,可以通过

1 回复 有任何疑惑可以回复我~
    public transient Method getMethod(String s, Class aclass[])
        throws NoSuchMethodException, SecurityException
    {
        checkMemberAccess(0, Reflection.getCallerClass(), true);
        Method method = getMethod0(s, aclass);
        if(method == null)
            throw new NoSuchMethodException((new StringBuilder()).append(getName()).append(".").append(s).append(argumentTypesToString(aclass)).toString());
        else
            return method;
    }

哦,看了一下getMethod方法,才知道,后面可以跟参数列表类型

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

根据方法名获取方法的值,类中出现了重载,怎么办

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信