猿来绘Java-43-初步认识注解

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可以并列多个

JDK内置的三个基本注解

@Override: 限定重写父类方法, 该注解只能用于方法,用于校验所写的方法是否重写了父类的方法。

@Deprecated: 用于表示所修饰的元素(类, 方法等)已过时。通常是因为所修饰的结构危险或存在更好的选择

@SuppressWarnings: 抑制编译器警告

代码示例

//AnnotationTest.java
package 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();

おすすめ

転載: blog.csdn.net/asdfjklingok/article/details/118099983