• 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());
        }
    }
    
    
  • 相关阅读:
    Android Interactive Animation
    Android 笔记
    java 从零开始 第三天
    RGB颜色查询对照表
    Android TextView文字过多时通过滚动条显示多余内容
    Android系统字体规范
    Android 动画之TranslateAnimation应用详解
    Python--day69--ORM的F查询和Q查询
    Python--day69--ORM聚合查询和分组查询
    Python--day69--ORM正反向查找(外键)
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/16436231.html
Copyright © 2020-2023  润新知