黑马程序员技术交流社区

标题: 一个反射,怎么实现 [打印本页]

作者: 而今从头越2012    时间: 2012-12-29 16:45
标题: 一个反射,怎么实现
本人写了一个类GetInfo,有个方法showMessage(),部分代码如下:
         Object obj= method.invoke(mSystemInfo, (Object[]) null);  

调用后返回MessageItem[]类型,可是不懂得如何从obj中转换,具体的类MessageItem是通过反射取得的,部分代码如下:
Class<?> clazz = Class.forName("com.heima.MessageItem");  

关于方法showMessage()的代码如下:  
public MessageItem[] showMessage(){
}
作者: 肖志锋    时间: 2012-12-29 21:37
Class clazz = Class.forName("com.heima.MessageItem"); //获取类对象
Constructor con = clazz.getConstructor(); //获取空参构造函数,当然你也可以获取有参的,这里我就不说了,去看API查下就知道了。
Object obj = con.newInstance();//通过方法新建一个对象,同上,还是无参的,有参的自己弄
Method m = clazz.getMethod("showMessage");//因为你的是无参的
m.invoke(obj); //这样直接运行了,没办法接收,因为你那个数组类型没办法定义,需要导包才能用,但是导包的话就失去反射的意义了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2