`
nooalou
  • 浏览: 66581 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

类反射

    博客分类:
  • java
阅读更多
没事,写了个类反射的例子,最近的EAI项目中,用到了其中一小部分。

                              System.out.println("-------------------以下为利用类反射机制测试相同结果----------------------");
                //动态构造未知类型的类
                Class cls = Class.forName("com.ls.xml.MessageDocument");
                //获取第一个内部类成员,如果有多个可以遍历获取,代码大家自己看JDK吧
                Class subCls=cls.getClasses()[0];
                //打印出此内部类的所有方法,还可以打印出更多信息,如构造方法等,请查看JDK文档
                for (int j = 0; j < subCls.getMethods().length; j++) {
                        System.out.println("内部类的方法"+j+":"+subCls.getMethods()[j]);
                }
                //获取内部类方法
                //下面参数new Class[]{String.class}为要调用的方法的类型,parse为方法名称
                Method mtd = subCls.getMethod("parse",new Class[]{String.class});     
                //由于要调用的是内部类的静态方法,因此,不需要实例化内部类,下面为实例化的方法,注销掉
                //Object obj = (Object)subCls.newInstance();
                //inputStream为入参的具体内容
                Object result=mtd.invoke(subCls,new Object[]{inputStream});
                //将结果转换为相应的类型,做一下测试,看看是不是想要的结果
                MessageDocument messageDocument=null;
                messageDocument=(MessageDocument)result;
                System.out.println(messageDocument.getIntObjectName());
                System.out.println(result+"-----------------------------------------------");

3
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics