用反射调用静态方法
- 先获取到该方法的参数,
- 通过方法名及参数再次找到该方法
- invoke调用方法,传参
- 方法执行完毕,输出打印
public static void main(String[] args) throws NoSuchMethodException,
SecurityException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException {
Class<String> c = String.class;
Method[] methods = c.getMethods();
for (Method method : methods) {
if (method.getName().equals("join")) {
System.out.println(method.getName() + "\t参数:"
+ Arrays.toString(method.getParameters()));
}
}
// 反射获取方法
Method method = c.getMethod("join", java.lang.CharSequence.class,
java.lang.Iterable.class);
// invoke调用方法
String s = (String) method.invoke(null, "-", new ArrayList<String>() {
{
add("start");
add("end");
}
});
System.out.println(s);
}