Method类的 invoke()方法

 1 public class MethodTest
 2
 3 {
 4     public static void main(String[] args)
 5     {
 6         String [] names ={"tom","tim","allen","alice"};
 7         Class<?> clazz = Test.class;
 8         try
 9         {
10             Method method = clazz.getMethod("sayHi", String.class);
11             for(String name:names)
12                 method.invoke(clazz.newInstance(),name);
13         } catch (NoSuchMethodException e)
14         {
15             e.printStackTrace();
16         } catch (IllegalAccessException e)
17         {
18             e.printStackTrace();
19         } catch (IllegalArgumentException e)
20         {
21             e.printStackTrace();
22         } catch (InvocationTargetException e)
23         {
24             e.printStackTrace();
25         } catch (InstantiationException e)
26         {
27             e.printStackTrace();
28         }
29     }
30 }
31 class Test
32 {
33     public void sayHi(String name)
34     {
35         System.out.println("Hi "+name);
36     }
37 }
时间: 2024-11-09 06:31:14

Method类的 invoke()方法的相关文章

关于Method类的invoke方法

import java.lang.reflect.Method; public class InvokeTester { public int add(int param1, int param2) {  return param1 + param2; } public String echo(String mesg) {  return "echo" + mesg; } public static void main(String[] args) throws Exception {

java反射-Method中的invoke方法的用法-以及函数式接口和lambda表达式

作者最近研究框架底层代码过程中感觉自己基础不太牢固,于是写了一点案例,以防日后忘记 接口类:Animals 1 public interface Animals { 2 3 public void eat(); 4 } package cn.chenc.study.entity; public interface InterfaceFactory { public String show(int i); } 实体类:Person package cn.chenc.study.entity; im

java反射中method类中的invoke方法作用

首先Method类代表一个方法,所以invoke(调用)就是调用Method类代表的方法.它可以让你实现动态调用,例如你可以动态的传人参数.下面是一个简单的例子. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 public class MethodTest {     public static void main(String[] args)

JAVA深入研究——Method的Invoke方法。

在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到Method,这时去调用父类的对象也会报错.虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java是如何实现的,就学习了下Method的源代码. Method的invoke方法 1.先检查 AccessibleObject的override属性是否为true. Accessibl

JAVA深入研究——Method的Invoke方法

http://www.cnblogs.com/onlywujun/p/3519037.html 在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一样,去调用父类的对象也会报错,虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java是如何实现的,就学习了下Method的源代码. Method的invoke方法 1.先检查 AccessibleObject的override属性是否为true. AccessibleObject是Met

JAVA深入研究——Method的Invoke方法(转)

在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一样,去调用父类的对象也会报错,虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java是如何实现的,就学习了下Method的源代码. Method的invoke方法 1.先检查 AccessibleObject的override属性是否为true. AccessibleObject是Method,Field,Constructor的父类,override属性默认为false,可调用s

java反射的invoke方法

首先简单介绍两个元注解:@retention是() 括号内参数作用时间 编译.运行.源码@target()  括号内参数作用范围 变量,方法.... //获取class对象 Class clazz = Class.forName("cn.ph.test.UserDao"); //获取对象方法 Method[] mds = clazz.getMethods(); //遍历 for(Method md : mds){ /** *@MyTest.class 注解码对象 *invake(Obj

JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践

JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Fiald,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识Class类 想要反射,你就必须要了解一个类--Class,我们知道,java程序中的各个java类都属于同一事物,我们通常用Classliability描述对吧,反射这个概念从JDK1.2就出来了,历史算是比较悠久了,这个Class可不是关键字哦,这个是一个类,他代表的是一类事物: 我们归根结底就

(转)Java.lang.reflect.Method invoke方法 实例

背景:今天在项目中用到Method 的invoke方法,但是并不理解,查完才知道,原来如此! import java.lang.reflect.Method; /** * Java.lang.reflect.Method invoke方法 实例 * 程序中配置文件中有对实体对象的get,set方法的描述,通过应用invoke()方法调用实体对象的method方法 return * m_oGetter.invoke(oSrc, null); oSrc为实体对象,Method m_oGetter *