hooyantsing's Blog

Method类里的invoke方法

字数统计: 198阅读时长: 1 min
2020/05/24

反射

Method类里的invoke方法


InvokeDemo.java

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
package reflex;

import java.lang.reflect.Method;

public class InvokeDemo {
    public static void main(String[] args) {
        try {
            //Class.getMethod(方法名,形参) 区分重载方法
            Method staticDemo = InvokeDemo.class.getMethod("staticInvoke", int.class);
            //静态方法属于类 因此第一个参数作为实例对象为空,后面的参数为staticDemo这个方法对象的形参。
            staticDemo.invoke(null,10);

            Method demo = InvokeDemo.class.getMethod("methodInvoke",int.class);
            //实例化对象
            InvokeDemo id = new InvokeDemo();
            //普通方法属于对象,因此需要先实例化一个对象。第一个参数作为实例对象,后面的参数为demo这个方法对象的形参。
            demo.invoke(id,20);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void staticInvoke(int params){
        System.out.println(params);
    }

    public void methodInvoke(int params){
        System.out.println(params);
    }
}
CATALOG