Reflection API的基本使用
1.获取某个类的所有方法信息(运行时)
public class DumpMethods { public static void main(String[] args) throws Exception{ //Reflection API的基本作用 Class<?> classtype = Class.forName("java.lang.Object"); Method[] methods = classtype.getDeclaredMethods(); //获取String类下的所有方法,包含私有方法。(运行时所有方法) for(Method method : methods){ System.out.println(method); } } }
2.通过反射调用某类的某个指定方法
public class InvokeTester { public int add(int a, int b){ return a + b; } public String echo(String message){ return "hello "+message; } public static void main(String[] args) throws Exception{ //一般调用方法 // InvokeTester test = new InvokeTester(); // System.out.println(test.add(3, 4)); // System.out.println(test.echo("welcome")); //Reflection调用方法 Class<?> classType = InvokeTester.class; Object invokeTester = classType.newInstance(); // System.out.println(invokeTester instanceof InvokeTester); Method addMethod = classType.getMethod("add", new Class[]{int.class, int.class}); Object result = addMethod.invoke(invokeTester, new Object[]{2,3}); System.out.println(result); System.out.println("-------------------------"); Method echoMethod = classType.getMethod("echo", new Class[]{String.class}); Object result2 = echoMethod.invoke(invokeTester, new Object[]{"tom"}); System.out.println(result2); } }
Java记录 -84- Reflection API的使用示例
原文地址:http://zlfwmm.blog.51cto.com/5892198/1716260