反射 方法反射的操作
Posted fangzhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射 方法反射的操作相关的知识,希望对你有一定的参考价值。
方法的反射
1、如何获取某个方法
方法的名称和参数列表才能唯一确定某一个方法
2、方法反射的操作
method.invoke(对象,参数列表);
3、示例
1 package com.reflect; 2 3 import java.lang.reflect.Method; 4 5 /** 6 * @author 作者:方o丈 7 * @version 创建时间:2018年6月9日 下午11:06:27 类说明:方法反射的操作 8 */ 9 public class MethodReflect { 10 11 public static void main(String[] args) { 12 // 要获取方法,就得先获取类的信息,要获取类的信息,就得先获取类的类类型 13 A a = new A(); 14 Class c = a.getClass(); 15 try { 16 // 获取方法对象,由方法名和参数列表来确定某一方法 17 Method m1 = c.getMethod("test"); 18 Method m2 = c.getMethod("test", new Class[] { int.class, int.class }); 19 /** 20 * 方法反射的操作。 21 * 以前方法的调用:a.test(a, b) 22 * 反射操作:是用Method对象来进行方法调用 23 * invoke(Object obj,Object...(可变参数列表,三种传参方式)) 24 */ 25 m1.invoke(a); 26 m2.invoke(a, 10, 20); 27 m2.invoke(a, new Object[] { 10, 21 }); 28 29 } catch (Exception e) { 30 e.printStackTrace(); 31 } 32 } 33 } 34 35 class A { 36 37 public void test() { 38 System.out.println("hello world!"); 39 } 40 41 public void test(int a, int b) { 42 System.out.println(a + b); 43 } 44 45 public void test(String a, String b) { 46 System.out.println(a + b); 47 } 48 }
运行结果:
以上是关于反射 方法反射的操作的主要内容,如果未能解决你的问题,请参考以下文章