一个反射的简单例子

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

一般程序都很少用到反射,下面是一个简单的用到反射的例子

import Java.lang.reflect.*;

class loadclass

public class reflecttest {

static

{

System.out.println("Class reflecttest loaded");

}

public static void staicMethod()

{

System.out.println("staticMethod Called");

}

public void instanceMethod()

{

System.out.println("instanceMethod Called");

}

public static void main(String[] args) {

Class c=reflecttest.class;

try {

Method method = c.getMethod("staicMethod", null);

method.invoke(c,null);

method.invoke(c.newInstance(),null);

method=c.getMethod("instanceMethod",null);

//method.invoke(c,null);

//将抛出异常IllegalArgumentException:object is not an instance of declar

ing class

method.invoke(c.newInstance(),null);

}

catch (Exception ex) {

ex.printStackTrace();

}

}

}

这仅仅是为了测试,没有实际的用处,不过至少说明了一个问题,静态方法可以供

类或者实例调用,而实例方法不可以由类调用 。下面的程序实现一个功能

从命令行输入一个类名,输入它的所有方法。

import java.lang.reflect.*;

public class getMethod{

public static void main(String[] args) {

if (args.length!=1)

{

System.out.println("Format: java getMethod classname");

return;

}

Class c=null;

try {

c=Class.forName(args[0]);

}

catch (ClassNotFoundException ex) {

System.out.println("Class not found");

return;

}

Method[] method=c.getMethods();

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航