目录
1.注解
1.概念
注解与注释类似,都是用来解释程序的,但是有一点需要注意,注解可以被其他程序[编译器/Spring 容器]使用处理,用作不同的用途。
2.java的注解
什么是java的注解
java定义了一套注解,共计7个
@Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated - 标记过时方法。如果使用该方法,会报编译警告。
@SuppressWarnings - 指示编译器去忽略注解中声明的警告。
@Retention - 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。
@Documented - 标记这些注解是否包含在用户文档中。
@Target - 标记这个注解应该是哪种 Java 成员。
@Inherited - 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)
从 Java 7 开始,额外添加了 3 个注解:
@SafeVarargs - Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
@FunctionalInterface - Java 8 开始支持,标识一个匿名函数或函数式接口。
@Repeatable - Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
这些注解可以被分为元注解和其他注解。
3.元注解
元注解是用来解释其他注解的注解,可以用在自定义注解上,分别是 @Documented、@Target、@Retention 和 @Inherited。Java 8 又增加了 @Repeatable 和 @Native 两个注解。
就好像这样。
4.自定义注解
利用@interface来进行定义,总的来说围绕注解的用途和是否可被继承,又或者是生命周期以及方法来进行定义
2.反射
1.概念以及作用
简单来说,反射就是可以拿到类中全部属性和方法,同时还能修改属性和执行方法的一个性质,难以理解的话可以将它理解为一个照妖镜性质的玩意。
2.反射类与反射对象
反射对应的类是Class 类,而每个类型对应唯一一个Class 对象,即反射对象 。
而反射对象的创建方式:Class.forName
Class cls=Class.forName("zhujiefanshe.Test1");
这就算创建了一个反射对象
3.获取方法和属性
使用反射对象.getDeclaredMethods() 以及 反射对象.getDeclaredFields()来完成这一功能