java注解

来源:互联网 发布:httpclient 获取json 编辑:程序博客网 时间:2024/05/06 05:21

注解相当于一种标记,加上了注解就相当于打上了标记,没有加,就没有某种标记,javac编辑器、开发工具等可以用发射来了解你的类及各种元素上有无某种标记,看你有什么标记就去做什么相对应的事情。标记可以加在包,类,方法,字段,方法的参数及局部变量上。

 

常用的注解有:

1.Override

表示一个方法声明打算重写超类中的另一个方法声明。如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。

2.Deprecated

用 @Deprecated 注释的程序元素,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。在使用不被赞成的程序元素或在不被赞成的代码中执行重写时,编译器会发出警告。

           这个注解的好处是:告诉新使用者这个类、包、方法等已经过时,建议不要使用,对于已经使用了的人,不会在器使用的程序中报错。

 

3.SuppressWarnings 

指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。注意,在给定元素中取消显示的警告集是所有包含元素中取消显示的警告的超集。例如,如果注释一个类来取消显示某个警告,同时注释一个方法来取消显示另一个警告,那么将在此方法中同时取消显示这两个警告。

 

******上面的那些都是一些最基本的注解,系统自带的,在开发中自己写注解和用注解的过程是什么样子的呢

注解的应用结构图:

注解就相当于一个你的源程序中要调用的类,要在源程序中调用某个注解就应先准备好这个注解类,就像你要使用某个类就要先开发好这个

4.Retention

 

*当一个类有注解的时候:源程序会被javac编译器编译,在编译的时候编译器有可能会把注解去掉,这是一种可能,

还有一种可能是javac编译器吧注解留在了class文件中,这时候在用这个源程序的时候,就要把注解的class文件调入内存中来,(此时class文件不是字节码,只有用类加载器加载完成之后在内存中得到的一些二进制才是字节码)类加载器把class文件调入内存中的时候也有转换,转换是否把注解里面的注解保存下来(就是说注解类里面还有注解)这也有说法。所有一个注解的生命周期有三个阶段:java源文件---->class文件---->内存中的字节码。所以在设计注解的时候可以加上Retention这个元注解(元注解就是注解的注解),这个元注解有三个取值:Retentionplicy.SOURCE(编译器要丢弃的注释。)、RetentionPolicy.CLASS(编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释。这是默认的行为。)  、RetentionPolicy.RUNTIME(编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取。)默认的是RetentionPolicy.CLASS状态。

 

 

 

 

 

 

 

原创粉丝点击