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());
    解决结果:成功!
    错误等级:低级
    *注意事项:无
  • 相关阅读:
    rocketmq 修改broker和namesrv默认设置的堆内存大小
    linux 向文件中添加内容 sed
    页面 请求错误总结
    将pgsql中的所有表的序列当前值设置为所需的值
    pg 强制断开连接 删库
    测试的基本概念
    Linking(3)
    Linking(1)
    Linking(2)
    Nginx Learning (5)
  • 原文地址:https://www.cnblogs.com/axibug/p/14852057.html
Copyright © 2011-2022 走看看