import java.lang.reflect.*;
public class ReflectOperation {
/*
获取类的实例化对象
*/
public static Object getClassInstance(String class_name) throws Exception {
Class<?> clazzs = Class.forName(class_name);
Object obj = clazzs.newInstance();
return obj;
}
/*
获取类的静态函数
*/
public static Object invokeStaticClassMethod(Class clazz, String method_name, Class[] clazz_params, Object[] params) throws Exception {
Method method = clazz.getDeclaredMethod(method_name, clazz_params);
// getDeclaredMethod 可以调用所有的函数
// getMethod 只有公有的函数
return method.invoke(null, params);
}
/*
获取类的成员函数
*/
public static Object invokeClassMethod(Object instance, String method_name, Class[] clazz_params, Object[] params ,boolean put_params) throws Exception {
Class<?> clazz = instance.getClass();
if (put_params){
Method method = clazz.getDeclaredMethod(method_name, clazz_params);
return method.invoke(instance, params);
}else {
Method method = clazz.getDeclaredMethod(method_name);
return method.invoke(instance);
}
}
}