类反射
没事,写了个类反射的例子,最近的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+"-----------------------------------------------");