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

Posted strongZj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
    {
        String [] names ={"tom","tim","allen","alice"};
        Class<?> clazz = Test.class;
        try
        {
            Method method = clazz.getMethod("sayHi", String.class);
            for(String name:names)
                method.invoke(clazz.newInstance(),name);
        catch (NoSuchMethodException e)
        {
            e.printStackTrace();
        catch (IllegalAccessException e)
        {
            e.printStackTrace();
        catch (IllegalArgumentException e)
        {
            e.printStackTrace();
        catch (InvocationTargetException e)
        {
            e.printStackTrace();
        catch (InstantiationException e)
        {
            e.printStackTrace();
        }
    }
}
class Test
{
    public void sayHi(String name)
    {
        System.out.println("Hi "+name);
    }
}

以上是关于java反射中method类中的invoke方法作用的主要内容,如果未能解决你的问题,请参考以下文章

Java反射机制获取set()方法 并且为set()方法传值

java反射机制之Method invoke执行调用方法例子

反射中的一个问题点:利用Method执行main方法特殊的地方

反射机制--调用构造函数和成员方法制作帮助文档

java反射调用方法可以传非基本类型吗?如对象、接口

java反射的invoke方法