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

来源:5-2 项目实现(上)

qq_云在风中_0

2016-05-30 21:03

Method getMethod = c.getMethod(getMethodName);

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


写回答 关注

3回答

  • 战旗TV
    2016-05-31 16:26:53
    已采纳

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

    qq_云在风...

    括号里的方法名后面跟的不是实参,是参数列表类型

    2016-05-31 17:26:19

    共 2 条回复 >

  • qq_云在风中_0
    2016-05-31 17:25:10
    	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);

    测试代码,可以通过

  • qq_云在风中_0
    2016-05-31 17:23:41
        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方法,才知道,后面可以跟参数列表类型

全面解析Java注解

注解Java中的常用技能,通过实战演示注解在实际项目中的应用

126934 学习 · 102 问题

查看课程

相似问题