反射机制的常见作用
1.动态的加载类。动态的获取类的信息(属性,方法构造器)
2.动态构造对象
3动态调用类和对象的任意方法,构造器
4.动态调用和处理属性
5.获取泛型信息
6.处理注解
获取Class对象的方式有哪些
1.通过字节码文件
2.对象的getClass()方法
3.Class类的静态方法forName(....)
反射机制动态操作方法_属性_构造器
使用反射机制获取类的名称和属性的方法
1.获取类的名称:
2. 获得包名+类名
(2). String getSimpleName() 获得类的名字
2.获取类的属性
(1). Field getField(String fieldName) 得到公共的属性对象
(2). Field getDeclareField(String fieldName) 得到指定名称的属性对象
(3).Field []c.getDeclaredFields() 得到所有的属性对象
使用反射机制获取方法及构造方法的方法
1 Method[] getDeclaredMethods() 得到公共的方法对象
2 Method[] c.getMethods() 得到父类及本类中的公共的方法对象
3 Method getDeclaredMethod(StringmethodName, Class …type)得到指定名称的本类中公共的方法
4 Method getMethod(String methodName,Class type)得到本类或父类中的公共的方法对象
getDeclaredFields()和getFields()方法有什么区别
getDeclaredFields()可以获取类中所有的属性,不包含继承的属性
getFields()获取类中所用public属性对象数组
简述什么是泛型?有哪些作用?
Java 中的泛型仅仅是给编译器 javac 使用的,确保数据的
安全性和免去强制类型转换的麻烦,但是一旦编译完成,所
有与泛型有关的类型全部擦除。
使用泛型直接读取泛型,是读取不到的,因为反射是操作
加载以后的类的。
注解的作用
1) 不是程序本身,可以对程序作出解释。(这一点跟注释没
什么区别)
2) 可以被其他程序(比如:编译器等)读取。(注解信息处理流
程,是注解和注释的重大区别,如果没有注解信息处理流
程,则注解毫无意义)
常见的内置注解有哪些?分别是什么作用
1) @Override :标识方法是重写的方法
2) @Deprecated :标识的方法不建议使用
3) @SuppressWarnings:用来抑制编译时的警告信息
自定义注解的注意事项有哪些?
使用@interface 定 义 自 定 义 注 解 时 , 自 动 继 承 了
java.lang.annotation.Annotation 接口
1) @interface 用来声明一个注解
2) 其中的每一个方法实际上是声明了一个配置参数
a) 方法的名称就是参数的名称
b) 返回值类型就是参数类型(返回值类型只能是基本
类型、Class、String、enum)
c) 可以通过 default 来声明参数的默认值
d) 如果只有一个成员,一般参数名为 value
注意事项:注解元素必须要有值。我们定义注解元素时,经
常使用空字符串,0 作为默认值。
也经常使用负数(比如-1)表示不存在的含义
元注解
元注解的作用就是负责注解其他注解。在Java 中定义了 4
个标准的meta-annotation 类型,它们被用来提供对其它
annotation 类型作说明
这些类型和它们所支持的类在java.lang.annotation 包中可
以找到
1) @Target
2) @Retention
3) @Documented
4) @Inherited