码迷,mamicode.com
首页 > 其他好文 > 详细

Exception:NoSuchMethodException

时间:2021-06-05 18:14:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:method   元素   结果   ext   res   node   acl   string   判断   

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());
解决结果:成功!
*注意事项:无

Exception:NoSuchMethodException

标签:method   元素   结果   ext   res   node   acl   string   判断   

原文地址:https://www.cnblogs.com/axibug/p/14852057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!