有时候我们需要对一个静态类使用反射机制,来激活静态类内部的静态方法,用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就可以了。