Java注解

Java Annotation是表示元数据的标记,即附加有类,接口,方法或字段的元数据,以指示Java编译器和JVM可以使用的一些附加信息。

Java中的注释用于提供其他信息,因此它是XML和Java标记接口的替代选项。

首先,我们将学习一些内置注释,然后继续创建和使用自定义注释。

内置Java注释

Java中有几个内置注释。一些注释应用于Java代码,而另一些注释则应用于其他注释。

Java代码中使用的内置Java注释

@Override

@SuppressWarnings

@已弃用

其他注释中使用的内置Java注释

@目标

@保留

@遗传

@记录

了解内置注释

首先让我们了解内置注释。

@Override

@Override注释可确保子类方法将覆盖父类方法。如果不是这样,则会发生编译时错误。

有时,我们会犯一些愚蠢的错误,例如拼写错误等。因此,最好标记@Override注释,以确保方法被覆盖。

@SuppressWarnings

@SuppressWarnings批注:用于禁止编译器发出的警告。

如果删除@SuppressWarnings(“ unchecked”)批注,由于我们使用的是非通用集合,它将在编译时显示警告。

@已弃用

@Deprecated注释表示此方法已弃用,因此编译器将显示警告。它通知用户它可能会在将来的版本中删除。因此,最好不要使用这种方法。

在编译时:

在运行时:

Java自定义注释

Java自定义注释或Java用户定义的注释易于创建和使用。 @interface元素用于声明注释。例如:

在这里,MyAnnotation是自定义注释名称。

Java自定义注释Signature(签名)要记住的要点

程序员应该记住一些要点。

方法不应包含任何throws子句

方法应返回以下之一:原始数据类型,字符串,类,枚举或这些数据类型的数组。

方法不应具有任何参数。

我们应该在接口关键字之前附加@来定义注释。

它可以为该方法分配默认值。

注释类型

有三种类型的注释。

标记注释

单值注释

多值注释

1)标记注释

没有方法的注释称为标记注释。例如:

@Override和@Deprecated是标记注释。

2)单值注释

具有一种方法的注释称为单值注释。例如:

我们也可以提供默认值。例如:

如何应用单值注释

让我们看一下应用单值注释的代码。

该值可以是任何值。

3)多值注释

具有多种方法的注释称为多值注释。例如:

我们也可以提供默认值。例如:

如何应用多值注释

让我们看一下应用多值注释的代码。

Java自定义注释中使用的内置注释

@目标

@保留

@遗传

@记录

@目标

@Target标记用于指定使用哪种类型的注释。

java.lang.annotation.ElementType枚举声明了许多常量以指定要在其中应用注释的元素的类型,例如TYPE,METHOD,FIELD等。让我们来看一下ElementType枚举的常量:

Element Types
Where the annotation can be applied
TYPE
class, interface or enumeration
FIELD
fields
METHOD
methods
CONSTRUCTOR
constructors
LOCAL_VARIABLE
local variables
ANNOTATION_TYPE
annotation type
PARAMETER
parameter

为类指定注释的示例

为类,方法或字段指定注释的示例

@保留

@Retention批注用于指定注释级别。

RetentionPolicy
Availability
RetentionPolicy.SOURCE
refers to the source code, discarded during compilation. It will not be available in the compiled class.
RetentionPolicy.CLASS
refers to the .class file, available to java compiler but not to JVM
. It is included in the class file.
RetentionPolicy.RUNTIME
refers to the runtime, available to java compiler and JVM

.

指定RetentionPolicy的示例

自定义注释的示例:创建,应用和访问注释

让我们看一下创建,应用和访问注释的简单示例。

文件:Test.java

在实际场景中如何使用内置注释?

在实际情况下,Java程序员只需要应用注释。他/她不需要创建和访问注释。创建和访问注释由实现提供者执行。代表注释,java编译器或JVM执行一些其他操作。

@遗传

默认情况下,注释不继承到子类。 @Inherited批注将批注标记为要继承到子类。

@记录

@Documented标记要包含在文档中的注释。