Exception:NoSuchMethodException

bug天天有,今天异常多

异常名称:NoSuchMethodException
异常分析:找不到方法,方法调用错误?
问题原因:反射获取此方法的Method对象时e.getName()提取的只是元素标签,要求提取元素标签里面的值
//1.创建SAXReader对象
        SAXReader reader = new SAXReader();

        //2.读取XML文件
        Document dom = reader.read("F:\JavaTest\test\classes.xml");

        //3.获取<className>元素
        Element classTag = (Element)dom.selectSingleNode("/classes/class/className");

        //4.获取<className>元素的值
        String className = classTag.getText();

        //5.反射获取Class对象
        Class aClass = Class.forName(className);//获取了com.xxx.xxx路径
        System.out.println(className);//className=com.xxx.xxx

        //6.创建对象
        Object obj = aClass.newInstance();

        //5.获取所有<methodName>元素
        List<Element> methodTags = dom.selectNodes("/classes/class/methodName");

        System.out.println(methodTags);
        //6.遍历集合
        for (Element e : methodTags) {

            //反射获取此方法的Method对象
            Method method = aClass.getMethod(e.getName());
            //判断此方法上是否使用了MyTest注解
            if (method.isAnnotationPresent(MyTest.class)) {
                //执行此方法
                method.invoke(obj);
            }

解决方案:
Method method = aClass.getMethod(e.getName());
改为
Method method = aClass.getMethod(e.getText());
解决结果:成功!
错误等级:低级
*注意事项:无
原文地址:https://www.cnblogs.com/axibug/p/14852057.html