注解:
5.0版本新增加的功能。
用到的注解功能有关的对象都在java.lang.annotation包中。
注解与反射功能息息相关。
与注释不同的是,注解会对代码的各个阶段产生不同的影响。或者影响程序的编译,或者影响程序的最终结果。
注解会对Java程序的哪几个阶段产生影响?
三个阶段:
1、 以.java为后缀的源代码文件,注解会对这个阶段产生影响;
源代码级别的注解:SOURCE
2、 用javac.exe命令对源文件进行编译,会生成.class文件,注解会对这个阶段产生影响;
字节码级别的注解:CLASS
3、 用java.exe命令对字节码文件(class文件)进行解释(在jvm上运行),生成最终结果。注解会对这个阶段产生影响。
虚拟机级别的注解:RUNTIME
将注解功能抽象为一种称为“注解”的对象,可以建立这样的对象。
标准类库提供的标准注解:
@Override 只用来对方法进行注解,解决编译时的问题。
@Deprecated 对类,对方法都能进行注解,解决类或方法过时的问题
@SuppressWarnings 解决对于警告的忽略问题,压制各种各样的警告。
标准注解1:
第二个标准注解:
第三个标准注解:忽略或压制警告:
当自定义一个注解,而本身没有设置@Target注解时,则支持所有对象类型。
注解对象中的成员有哪些?
注解中没有方法!
只有字段成员,它的设置是通过方法的样式进行的。
方法参数中的注解,因为参数Parmater对象是属于方法Method对象的,所以要用到Method类中的一个方法: