java注解学习
在学习期间中,学到了注解。关于注解,自己在这里学习总结如下:
1.注解这个机制是在jdk1.5及以后才有的。注解的使用可以使代码更加的简洁。在一些框架的使用中, 会使用到很多的xml,如果会使用注解的话,会使的代码会非常的简洁。
2.注解的作用还可以给与提示,如:Override可以提示
java SE 1.5 的内置三种注解
1.@Override :重写的时候使用,子类重写父类的方法时可以使用,如果这个方法父类没有,也就是子类独有的方法,则使用这个注解会报错提示。所以一般重写的方法都建议使用这个注解,因为可以提示你这个方法是重写的,同时还会在你不小心写错方法名的时候提示你。
2.@Deprecated :这个注解的意思是表示这个方法是已弃用的。警告你要使用这个方法的话请慎用。
3.@SuppressWarnings:压制警告,关闭不当的编译警告信息
接下来讲讲自定义注解:
自定义注解的构建:
public @interface demo{ }
以上就是一个自定义注解
注解相当于一个特殊的类,在定义注解前,必须先连接一下元注解,声明注解属性还是方法什么的,声明注解的存活域。
1.@Target :这个元注解可以定义你自定义注解的具体用在什么地方,参数从ElementType里面选择。比如:
@Target(ElementType.METHOD)
public @interface demo{ } :这个意思就是自定义注解使用在方法上面
ElementType里面有很多值,常用的如下:
constructor:构造方法
field:字段声明
local_variable:局部变量声明
method:方法声明
parameter:参数声明
package:包声明
type:类、接口、enum声明
2.@Retention :在什么级别保留该注解,参数从RetentionPolicy里面取
有三种情况:
@Retention(RetentionPolicy.SOURCE) :表示在源代码级别保留该注解,当生成字节码文件时,就不会保留该注解了
@Retention(RetentionPolicy.CLASS) :表示在字节码文件中都保留这个注解,但是当加载到虚拟机里面运行的时候该注解不会保留
@Retention(RetentionPolicy.RUNTIME):表示在运行时都会保留该注解
3.@Documented :将此注解包含在生成的javadoc文档里面
4.@Inherited :注解可以被继承 这方面我也不怎么懂,有关言语就不乱讲,以免误导,如果有哪位大牛对@Inherited了解的,麻烦请在评论区评论一二,在下感激不尽!