本文共 1741 字,大约阅读时间需要 5 分钟。
JDK5.0开始增加了注解,是对MetaData的支持
Annotation 其实就是代码里的特殊标记, 这些标记可以在编译、类加载、运行时被读取, 并执行相应的处理。通过使用 Annotation, 程序员可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息。 代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。 x各大框架中主要是通过反射读取注解
注解可用于修饰包,类, 构造器, 方法, 成员变量, 参数, 局部变量的声明, 这些信息被保存在 Annotation的 “name=value” 对中。
@author 标明开发该类模块的作者, 多个作者之间使用,分割
@version 标明该类模块的版本
@see 参考转向, 也就是相关主题
@since 从哪个版本开始增加的
@param 对方法中某参数的说明, 如果没有参数就不能写
@return 对方法返回值的说明, 如果方法的返回值类型是void就不能写
@exception 对方法可能抛出的异常进行说明 , 如果方法没有用throws显式抛出的异常就不能写
其中
@param @return 和 @exception 这三个标记都是只用于方法的。
@param的格式要求: @param 形参名 形参类型 形参说明
@return 的格式要求: @return 返回值类型 返回值说明
@exception的格式要求: @exception 异常类型 异常说明
@param和@exception可以并列多个
@Override: 限定重写父类方法, 该注解只能用于方法,用于校验所写的方法是否重写了父类的方法。
@Deprecated: 用于表示所修饰的元素(类, 方法等)已过时。通常是因为所修饰的结构危险或存在更好的选择
@SuppressWarnings: 抑制编译器警告
//AnnotationTest.javapackage com.ylaihui.annotations;class Order{ String name; public Order() { } public Order(String name) { this.name = name; } public void show(){ System.out.println("Order show()..."); }}class YlaihuiOrder extends Order{ //@Override public void shows() { System.out.println("YlaihuiOrder show()..."); }}public class AnnotationTest { public static void main(String[] args) { YlaihuiOrder ylaihuiOrder = new YlaihuiOrder(); // 本意是想在 YlaihuiOrder 类中重写 Order 类中的 show方法,但是show写为shows了 // 如果没有使用注解,那么不会报错,也不会有任何提示,容易犯错 // 有了注解以后, 在shows方法前提供 @Override, 那么会强制检查方法是否真正的重写了父类中的方法 ylaihuiOrder.show(); // Order show()... }}
// Deprecated 已过时的Date date = new Date(2020, 10, 11);System.out.println(date);@SuppressWarnings("unused")int num = 10;@SuppressWarnings({ "unused", "rawtypes" })ArrayList list = new ArrayList();
转载地址:http://zxuhf.baihongyu.com/