package cn.sunzn.reflectcase; import java.lang.reflect.Method; public class GetMethod { public static void main(String[] args) { getMethodInfo("java.util.HashSet"); } /** * 传入全类名获得对应类中所有方法名和参数名 */ @SuppressWarnings("rawtypes") private static void getMethodInfo(String pkgName) { try { Class clazz = Class.forName(pkgName); Method[] methods = clazz.getMethods(); for (Method method : methods) { String methodName = method.getName(); System.out.println("方法名称:" + methodName); Class<?>[] parameterTypes = method.getParameterTypes(); for (Class<?> clas : parameterTypes) { String parameterName = clas.getName(); System.out.println("参数名称:" + parameterName); } System.out.println("*****************************"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
传入 java.util.HashSet 的运行结果如下:
方法名称:add 参数名称:java.lang.Object ***************************** 方法名称:clone ***************************** 方法名称:clear ***************************** 方法名称:iterator ***************************** 方法名称:remove 参数名称:java.lang.Object ***************************** 方法名称:contains 参数名称:java.lang.Object ***************************** 方法名称:isEmpty ***************************** 方法名称:size ***************************** 方法名称:equals 参数名称:java.lang.Object ***************************** 方法名称:hashCode ***************************** 方法名称:removeAll 参数名称:java.util.Collection ***************************** 方法名称:toString ***************************** 方法名称:addAll 参数名称:java.util.Collection ***************************** 方法名称:containsAll 参数名称:java.util.Collection ***************************** 方法名称:retainAll 参数名称:java.util.Collection ***************************** 方法名称:toArray 参数名称:[Ljava.lang.Object; ***************************** 方法名称:toArray ***************************** 方法名称:wait ***************************** 方法名称:wait 参数名称:long 参数名称:int ***************************** 方法名称:wait 参数名称:long ***************************** 方法名称:getClass ***************************** 方法名称:notify ***************************** 方法名称:notifyAll *****************************