java.lang.reflect.Method 类提供了访问方法的修饰符,返回类型,方法参数,注解,和可能抛也的异常的API.也可以调用方法.:
获取方法类型信息:
如何来列举申明在类中的方法,以及如何获取其类型信息.
一个方法的申明包括方法名,修饰符,参数,返回类型,以及可能抛也的异常.我们可能通过java.lang.reflect.Method来获取.如下示例:
import java.lang.reflect.Method;import java.lang.reflect.Type;import static java.lang.System.out;public class MethodSpy { private static final String fmt = "%24s: %s%n"; <E extends RuntimeException> void genericThrow() throws E {} private int get(int x,int y,double z) { return 0; } public static void main(String... args) { try { Class<?> c = Class.forName(args[0]); Method[] allMethods = c.getDeclaredMethods(); for(Method m : allMethods) { if(!m.getName().equals(args[1])) { continue; } out.format("%s%n",m.toGenericString()); out.format(fmt, "ReturnType",m.getReturnType()); out.format(fmt, "GenericReturnType",m.getGenericReturnType()); Class<?> [] pType = m.getParameterTypes(); Type[] gpType = m.getGenericParameterTypes(); for(int i = 0; i < pType.length;i++) { out.format(fmt,"ParameterType",pType[i]); out.format(fmt,"genericParameterType",gpType[i]); } Class<?>[] xType = m.getExceptionTypes(); Type[] gxType = m.getGenericExceptionTypes(); for(int i = 0;i < xType.length;i++) { out.format(fmt,"ExceptionType",xType[i]); out.format(fmt,"GenericExceptionType",gxType[i]); } } //for } catch(ClassNotFoundException x) { x.printStackTrace(); } } //main}//class
相关资源:Molecular dynamics simulation Elementary Methods