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("执行完成.....");
    }
    }
    }
     
  • 相关阅读:
    父级display:none获取子元素宽的问题
    获取url参数
    借一例固定菜单栏!!!
    笨蛋!!!
    调用腾讯地图api,在手机端获取用户地理位置。
    遇到的小tip
    复制事件
    跑马灯!!!!的汉子你威武雄壮!!!
    web页面有哪三层构成?分别是什么?
    CentOS 8 手动部署LNMP环境
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/11287470.html
Copyright © 2011-2022 走看看