zoukankan      html  css  js  c++  java
  • object is not an instance of declaring class

    错误信息:object is not an instance of declaring class

    说明Class没有实例化;
    解决办法:
    由于没有实力化可以有如下两种方法:
    1、反射方法定义成为static的,故被反射类就不需要实例化;
    2、method.invoke(class.newInstance(), args);

    举栗子:对应第一种方法

    public static void testSys(String msgs) {
    System.out.println("java 反射机制调用方法执行,msg:" + msgs);
    }

    @Test
    public void test(){
    System.out.println("-------------获取当前类-----------------------");
    String msg = "hello";
    Class<? extends Test> aClass1 = getClass();
    Method[] methods = aClass1.getMethods();
    for (Method method : methods) {
    if (method.getName().equals("testSys")) {
    System.out.println("匹配成功,开始执行反射方法,methodName:" + method.getName());
    System.out.println("aClass1:" + aClass1);
    System.out.println("aClass1Name:" + aClass1.getName());
    method.invoke(aClass1, msg);
    System.out.println("执行完成.....");
    }
    }
    }

    举栗子:对应第二种方法

    public void testSys(String msgs) {
    System.out.println("java 反射机制调用方法执行,msg:" + msgs);
    }

    @Test
    public void test(){
    System.out.println("-------------获取当前类-----------------------");
    String msg = "hello";
    Class<? extends Test> aClass1 = getClass();
    Method[] methods = aClass1.getMethods();
    for (Method method : methods) {
    if (method.getName().equals("testSys")) {
    System.out.println("匹配成功,开始执行反射方法,methodName:" + method.getName());
    System.out.println("aClass1:" + aClass1);
    System.out.println("aClass1Name:" + aClass1.getName());
    method.invoke(aClass1.newInstance(), msg);
    System.out.println("执行完成.....");
    }
    }
    }
     
  • 相关阅读:
    389 Directory Server RHEL 6.0以上客户端安装方法
    389 Directory Server RHEL 6.0以下客户端安装方法
    堆排序算法
    单链表倒置(递归与非递归)
    发帖水王问题及扩展
    2.5 k个最大的数
    2.7 最大公约数
    进制转化的算法问题。
    boost图库简单操作
    C++编程必备
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/11287470.html
Copyright © 2011-2022 走看看