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());
    解决结果:成功!
    错误等级:低级
    *注意事项:无
  • 相关阅读:
    凸优化-凸函数
    hadoop平台-Hbase安装
    非常实用的python字符串处理方法
    中心极限定理
    线性回归-误差项分析
    nginx为什么性能这么优越?
    Redis为什么单线程还那么快?线程安全吗?
    nginx负载均衡配置
    Dubbo的超时重试机制
    java类加载过程
  • 原文地址:https://www.cnblogs.com/axibug/p/14852057.html
Copyright © 2011-2022 走看看