import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class ClassUtil {
/**
* 通过反射执行srcClass的方法
* @param object --- the object the underlying method is invoked from
* @param srcClass ---要执行的类class
* @param paramClasses --- 参数class数组
* @param methodName ---方法名称
* @param args ---the arguments used for the method call
* @return
* @throws SecurityException
* @throws NoSuchMethodException
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @throws InvocationTargetException
*/
public static Object executeObjectMethod(Object object, Class<?> srcClass, Class<?>[] paramClasses, String methodName, Object... args) throws SecurityException, NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Method method = srcClass.getMethod(methodName, paramClasses);
return method.invoke(object, args);
}
public static void main(String[] args) throws Exception {
//通过反射执行Integer的toHexString静态方法
//System.out.println(Integer.toHexString(233));
System.out.println(ClassUtil.executeObjectMethod(null, Integer.class, new Class[]{int.class}, "toHexString", 233 ));
String value = new String("test");
//执行String对象的length()方法
System.out.println(executeObjectMethod(value, value.getClass(), null, "length"));
}
}
java利用反射执行对象的方法
最新推荐文章于 2024-08-11 09:51:52 发布