Constructor类概述与使用
来源:互联网 发布:网络教育入学时间 编辑:程序博客网 时间:2024/06/16 09:33
Constructor类简介
Constructor<T>类提供了访问构造器的信息,以及利用构造器创建对象的一系列方法。
当使用Constructor创建对象时,参数列表支持自动宽化(比如需要int而传入short),不支持自动窄化(比如需要int而传入long)。
getters
(1)构造器上的注解:
//获取指定类型的注解T getAnnotation (Class<T> annotationClass)//获取所有注解,但不包括继承得到的Annotation[] getDeclaredAnnotations ()//指定的注解类型是否存在于这个构造器上boolean isAnnotationPresent (Class<? extends Annotation> annotationType)
(2)构造器本身相关:
//获取该构造器所属的类的Class对象Class<T> getDeclaringClass ()//获取构造器名称(等于它所属的类名)String getName ()//获取访问权限(需要用java.lang.reflect.Modifier类解析)int getModifiers ()//是否是一个合成构造器boolean isSynthetic ()
(3)参数列表相关:
//获取各个参数上的注解,按照声明顺序Annotation[][] getParameterAnnotations ()//获取参数数量,变长参数列表整体算一个int getParameterCount ()//获取各个参数的类对应的Class对象Class[]<?> getParameterTypes ()//是否具有变长参数列表boolean isVarArgs ()
(4)异常相关:
//获取异常列表Class[]<?> getExceptionTypes ()
T newInstance(Object… initargs)
newInstance()方法接受一个变长Object列表,用于使用Constructor的实例创建相应的对象。
如果该Constructor的参数列表为空,那么传入的参数列表也应为空。
如果该Constructor对应的类是一个非静态内部类,那么参数列表的第一个应当是这个类对应的外部类的一个实例。
如果访问权限和参数检查都通过了,那么就会开始实例化对象。如果该Constructor对应的类尚未被加载,那么会自动加载该类。
如果对象实例化成功,那么就会返回这个对象。
可能抛出的异常:
- IllegalAccessException:访问权限不足时抛出;
- IllegalArgumentException:形参和实参无法匹配时抛出;
- InstantiationException:Constructor属于一个abstract的类时抛出(抽象类无法实例化);
- InvocationTargetException:Constructor对应的构造器抛出异常时抛出;
- ExceptionInInitializerError:使用该方法初始化对象失败时抛出。
阅读全文
0 0
- Constructor类概述与使用
- BOA constructor安装与使用
- 反射与Constructor、Method、Field类的使用
- js 类与constructor属性
- constructor and destructor 概述
- Class类概述与使用
- 类的三个特殊成员Copy Constructor、Copy-Assignment Operator、Destructor重载与使用
- Servlet概述与使用
- BOA constructor安装与使用[转--By otherrrr@gmail.com]
- C# static constructor 与普通constructor区别
- typeof、instanceof与constructor
- constructor与initComponent
- constructor与initComponent
- constructor与prototype
- constructor与module
- constructor和destructor概述(c++ only)
- KVO的概述与使用
- KVC的概述与使用
- Hadoop面试题整理(一)
- LeetCode编程练习
- HTML(三)— 综合实例
- 创建动态库时,建议使用的链接选项Bsymbolic
- numpy 碎碎念
- Constructor类概述与使用
- A Secret(HDU 6153 扩展KMP)
- 301重定向
- 【仿】新闻App练习
- 数据库的索引以及在哪些列上创建索引
- 最大连续子序列和-动态规划
- 频道管理和Tablayout
- 关于工作的一点感悟
- Lua—迭代器