- 反射
Java中一个非常突出的动态机制 reflection
反射是程序运行期间的行为
反射机制可以实现以下功能
- 在运行时判断任意一个对象所属类
- 在运行时创建任意一个类的对象
- 在运行时判断一个类中所有的成员变量和方法
- 在运行时调用一个类中方法
反射的源头
class 类类实例表示正在运行的java应用程序中的类和接口
class类的对象 一个类型加载的内存中,就存在一个属于当前类的对象,唯一不可变,
Class对象
类名.class
Class.forname(权限定名) 包名.类名 推荐
对象.getclass()
通过反射创造对象
- class.newInstance() 过时,默认空构造
- Constructor.newInstance()通过构造器,创建对象
获取公共构造器,获取私有构造器(先忽略私有权限在使用)
调用构造器的初始化信息
通过反射操作属性,操作方法
- 注解
Java1.5新特性
作用
语法:@注解名(实参)
位置:任意位置
分类:JDK内置注解
@Overriede 限定重写父类方法
@Deprecated 标记已经过时的
原注解
自定义注解
参数个数:标记注解,单值注解,完整注解
原注解:注解注解的注解
@Terget用来描述注解的范围
@Retention表示注解的生命周期
@Docunmentde表示使用该注解的元素应当javadoc或类似工具文档化
@Inhertied表示一个注解类型会被自动继承
自定义注解:
- 通过@interface自定义注解类型
- 自定义注解,默认实现 lang包下的的annotation接口
- 自定义注解,不能显示其继承的父类,和实现的接口
- 可以定义字段 修饰符 类型 字段名();
- 如果只有1个字段,建议value,默认直接赋值
- 字段类型:基本数据类型,String,annotation,枚举或者他们的数组
- 修饰符 只能public|缺省
- 通过default为字段赋默认值