java反射机制 (2) 小实例运用

通过反射机制,执行Test类中的add()方法

1.创建两个java文件Test.java和Main.java文件
(https://img-blog.csdn.net/20180909190228471?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25iYV9saW5zaHVoYW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

2.Test.java代码如下

package com.company;

public class Test {
    public void add(int num1,int num2){
        System.out.println(num1+num2);
    }
}

3.Main.java代码如下

package com.company;
import java.lang.reflect.Method;
public class Main {
    public static void main(String[] args) throws Exception{
       // 思路:得到Testlei中的add方法,然后执行add方法
        //1、获取对象类型.
        Class<?> classType=Class.forName("com.company.Test");
        //2、获取方法add,已经知道方法名add
             //()内也可以写为("add",new Class[]{int.class,int.class}Method method=classType.getMethod("add", int.class, int.class);
        //3、通过无参构造方法创建Test类对象
        Object test=classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
        //4.执行add方法
        method.invoke(test,12,100);
        //method.invoke(test,new Object[]{12,100});

        //执行结果为:112

    }
}

猜你喜欢

转载自blog.csdn.net/nba_linshuhao/article/details/82561165
今日推荐