java如何通过反射 激活静态类的静态方法

时间:2022-07-13 19:00:06

       有时候我们需要对一个静态类使用反射机制,来激活静态类内部的静态方法,用System静态类举例如下:

System.class.getMethod("setProperty", new Class[]{String.class,String.class}).invoke(null,"app_name","app_name_value");

 

这行代码等价于

System.setProperty("app_name","app_name_value")


其中getMethod中除了需要传入方法的名称外,还需要正确的传入方法内的参数类型数组,用以区分方法名相同但参数不同的重载类的方法。

invoke的第一个参数传入的是要激活方法的对象,如果是静态类本身,则直接传null就可以了。