Java 源码 - Method 类

2022/7/2 14:19:34

本文主要是介绍Java 源码 - Method 类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

方法(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());
    }
}



这篇关于Java 源码 - Method 类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程