Java教程

Java注解

本文主要是介绍Java注解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.注解简介

Java5版本之后可以在源码中嵌入一些补充信息,这些补充信息即为“注解” 。
注解可用“元数据”描述,是一种描述数据的数据。
注解以@符号开头(方法重写的@Override),同Class和Interface一样,注解也属于一种类型。
注解不改变程序的运行结果,也不影响程序运行的性能。有些注解可以在编译时给用户提示或警告,有些注解可以在运行时读写字节码文件信息。

  • Annotation:注解
  • Comment:注释

注解常见的作用有以下几种:

  1. 生成帮助文档。这是最常见的,也是 Java 最早提供的注解。常用的有 @see、@param 和 @return 等;
  2. 跟踪代码依赖性,实现替代配置文件功能。比较常见的是 Spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量;
  3. 在编译时进行格式检查。如把 @Override 注解放在方法前,如果这个方法并不是重写了父类方法,则编译时就能检查出。

2.@Override

@Override注解用来指定方法重写,只能修饰方法且只能用于方法重写,不可修饰其他元素。

下例中第一个toString为方法重载,第二个为方法重写

class Test{
public String toString(String s) {
    return s;
}

@Override
public String toString() {
    return super.toString();
}

}

3.@Deprecated

@Deprecated可以用来注解类、接口、成员方法和成员变量等,表示某个元素已过时。其他程序使用已过时元素时编译器会给出警告。
Java9为@Depercated注解增加了两个属性forRemoval和since

  1. firRemoval:boolean类型属性指定该API在将来是否会被删除
  2. since:String类型属性指定该API从哪个版本被标记为过时。

eg.@Deprecated(since = "1.2", forRemoval = true)

使用的已过时元素会被画上删除线test.toString()

4.@SuppressWarnings

@SuppressWarnings 注解指示被该注解修饰的程序元素(以及该程序元素中的所有子元素)取消显示指定的编译器警告,且会一直作用于该程序元素的所有子元素。
主要作用在于取消一些编译器产生的警告对代码左侧行列的遮挡(影响断点调试),需配合关键字使用。
image
eg.@SuppressWarnings({"deprecation"})忽略过时警告

5.@SafeVarargs

不太理解;详见: https://blog.csdn.net/qq_40341361/article/details/80433006

注:@SafeVarargs注解不适用于非 static 或非 final 声明的方法,对于未声明为 static 或 final 的方法,如果要抑制 unchecked 警告,可以使用 @SuppressWarnings 注解。

6.@FunctionalInterface

@FunctionalInterface 就是用来指定某个接口必须是函数式接口,所以 @FunInterface 只能修饰接口,不能修饰其它程序元素。
Lambda 表达式中,如果接口中只有一个抽象方法(可以包含多个默认方法或多个 static 方法),那么该接口就是函数式接口。

  • 函数式接口就是为 Java 8 的 Lambda 表达式准备的,Java 8 允许使用 Lambda 表达式创建函数式接口的实例,因此 Java 8 专门增加了 @FunctionalInterface。
这篇关于Java注解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!