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("执行完成.....");
    }
    }
    }
     
  • 相关阅读:
    Spring5.0源码导入IDEA(一)
    适配器模式
    3.6常见查询示例
    3.5在批处理模式下使用mysql
    3.4获取有关数据库和表的信息
    3.3.4.9使用多个表
    3.3.4.8计数行
    3.3.4.7模式匹配
    3.3.4.6使用NULL值
    3.3.4.5日期计算
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/11287470.html
Copyright © 2011-2022 走看看