方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
package java.lang.reflect; /** * 方法类。 */ public final class Method extends Executable { /** * 获取方法外部类的信息。 */ @Override public Class<?> getDeclaringClass() { return clazz; } /** * 方法名字。 */ @Override public String getName() { return name; } /** * 方法修饰符。 */ @Override public int getModifiers() { return modifiers; } /** * 返回值类型。 */ public Class<?> getReturnType() { return returnType; } /** * 参数类型。 */ @Override public Class<?>[] getParameterTypes() { return parameterTypes.clone(); } /** * 参数个数。 */ public int getParameterCount() { return parameterTypes.length; } /** * 参数泛型。 */ @Override public Type[] getGenericParameterTypes() { return super.getGenericParameterTypes(); } /** * 获取异常类型。 */ @Override public Class<?>[] getExceptionTypes() { return exceptionTypes.clone(); } /** * 执行方法。 */ @CallerSensitive public Object invoke(Object obj, Object... args) throws IllegalAccessException { MethodAccessor ma = methodAccessor; if (ma == null) { ma = acquireMethodAccessor(); } return ma.invoke(obj, args); } /** * 是否是接口中的默认方法。 */ public boolean isDefault() { return ((getModifiers() & (Modifier.ABSTRACT | Modifier.PUBLIC | Modifier.STATIC)) == Modifier.PUBLIC) && getDeclaringClass().isInterface(); } /** * 返回注解的默认值。 */ public Object getDefaultValue() { return result; } /** * 获取方法上的注解。 */ public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { return super.getAnnotation(annotationClass); } /** * 获取方法上的所有注解。 */ public Annotation[] getDeclaredAnnotations() { return super.getDeclaredAnnotations(); } /** * 获取参数上的注解。 */ @Override public Annotation[][] getParameterAnnotations() { return sharedGetParameterAnnotations(parameterTypes, parameterAnnotations); } /** * 获取注解的类型。 */ @Override public AnnotatedType getAnnotatedReturnType() { return getAnnotatedReturnType0(getGenericReturnType()); } }