zoukankan      html  css  js  c++  java
  • 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());
    解决结果:成功!
    错误等级:低级
    *注意事项:无
  • 相关阅读:
    团队项目成员和题目
    最大联通子数组
    站立会议5
    关于jsp之间href传参(中文)乱码问题
    站立会议4
    典型用户和用户场景描述
    站立会议3
    站立会议2
    站立会议1
    第七周学习进度情况
  • 原文地址:https://www.cnblogs.com/axibug/p/14852057.html
Copyright © 2011-2022 走看看