zoukankan      html  css  js  c++  java
  • 运用反射时报错java.lang.NoSuchMethodException,以解决,记录一下

    问题:想调用service类中的私有方法时, Method target=clz.getMethod("say", String.class);用Class的getMethod报错Java.lang.NoSuchMethodException。

    解决方案:查了下Class的文档,该类下原来有两个方法:getMethod,getDeclaredMethod。看了下说明大概的意思就是getMethod只能调用public声明的方法,而getDeclaredMethod基本可以调用任何类型声明的方法

     

    调用详细代码:

    public class Client5 {
        @SuppressWarnings("unused")
        private String say(String content){
            return "hi,"+content;
        }
        
        public String show(String content){
            return "hi,"+content;
        }
    }

    public class Client4 {
        public static void main(String args[]) throws Exception{
            Class<Client5> clz=Client5.class;
            Client5 obj=(Client5)clz.newInstance();
            Method target=clz.getDeclaredMethod("say", String.class);
            target.setAccessible(true);
            System.out.println(target.invoke(obj, "I am Caomr"));
        }
    }

     

    笔记:以后用放射多用getDeclaredMethod,尽量少用getMethod

  • 相关阅读:
    勿忘初心
    欧拉函数与数论的结合UVA11426
    法雷级数
    欧拉函数及其应用
    poyla计数问题
    组合计数问题中容斥原理的应用
    数学问题当中的一些基本计数问题
    HDU4642博弈好题
    KMP算法在字符串中的应用
    UVA11722概率问题之线性规划
  • 原文地址:https://www.cnblogs.com/telwanggs/p/7416573.html
Copyright © 2011-2022 走看看