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("执行完成.....");
    }
    }
    }
     
  • 相关阅读:
    Visual C#动态生成控件
    (转)GridView 72般绝技
    ASP.NET给DataGrid,Repeater等添加全选批量删除等功能(转)
    JS操作字符串
    在IE中调试客户端脚
    一组很棒的button样式 (转)
    c#实现随机字符串(不包含数字)
    1996年4月全国计算机等级考试二级C语言笔试试题
    ASP.NET 2.0站点登录、导航与权限管理 转
    1996年9月全国计算机等级考试二级C语言笔试试题
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/11287470.html
Copyright © 2011-2022 走看看