• Java 源码 Constructor 类


    构造函数(Constructor)在对象创建或者实例化时候被调用的方法。通常使用该方法来初始化数据成员和所需资源。

    源码

    package java.lang.reflect;
    /**
     * 构造方法类。
     */
    public final class Constructor<T> extends Executable {
        /**
         * 返回包含此构造方法的类。
         */
        @Override
        public Class<T> getDeclaringClass() {
            return clazz;
        }
    
        /**
         * 构造方法名。
         */
        @Override
        public String getName() {
            return getDeclaringClass().getName();
        }
    
        /**
         * 修饰符。
         */
        @Override
        public int getModifiers() {
            return modifiers;
        }
    
        /**
         * 获取参数类型。
         */
        @Override
        public Class<?>[] getParameterTypes() {
            return parameterTypes.clone();
        }
    
        /**
         * 获取异常。
         */
        @Override
        public Class<?>[] getExceptionTypes() {
            return exceptionTypes.clone();
        }
    
        /**
         * 初始化一个新对象。
         */
        @CallerSensitive
        public T newInstance(Object ... initargs)throws Exception {
            if ((clazz.getModifiers() & Modifier.ENUM) != 0)
                throw new IllegalArgumentException("Cannot reflectively create enum objects");
            ConstructorAccessor ca = constructorAccessor;
            if (ca == null) {
                ca = acquireConstructorAccessor();
            }
            @SuppressWarnings("unchecked")
            T inst = (T) ca.newInstance(initargs);
            return inst;
        }
    
        /**
         * 获取注解。
         */
        public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
            return super.getAnnotation(annotationClass);
        }
    
        /**
         * 获取参数上的注解。
         */
        @Override
        public Annotation[][] getParameterAnnotations() {
            return sharedGetParameterAnnotations(parameterTypes, parameterAnnotations);
        }
    }
    
  • 相关阅读:
    【Java学习】01. Java基本介绍及环境搭建
    vue组件之间的传值
    检测上传的文件类型js实现方式
    正则表达式学习笔记
    Nuxt.js学习笔记
    Vue+typescript+vuex项目实践学习笔记
    项目依赖&开发依赖
    vuex学习笔记
    export与export default的区别
    ES6 数组去重方法
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/16436820.html
Copyright © 2020-2023  润新知