【java】java中注解的简介,如何自定义注解,有哪些类型,有什么作用
发布人:shili8
发布时间:2025-02-14 22:50
阅读次数:0
**Java 中注解的简介**
在 Java 中,注解(Annotation)是一种特殊的接口,它可以用来描述类、方法、变量等的特性。注解是 Java5.0 引入的一项新功能,可以使得代码更加易于理解和维护。
**自定义注解**
要自定义一个注解,需要继承 `java.lang.Annotation` 接口,并且必须使用 `@Retention`、`@Target` 和 `@Documented` 等注解来指定该注解的保留方式、作用目标以及是否被包含在 Javadoc 中。
javaimport java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value();
}
在上面的例子中,我们定义了一个名为 `MyAnnotation` 的注解,它可以作用于方法,并且其值是字符串类型。
**注解的类型**
Java 中有以下几种注解:
* **元注解**:这些注解用于描述其他注解,例如 `@Retention`、`@Target` 和 `@Documented` 等。
* **普通注解**:这些注解用于描述类、方法、变量等的特性。
**注解的作用**
注解可以用来:
* **描述代码结构**:注解可以用来描述类、方法、变量等的结构,例如 `@Override` 和 `@Deprecated` 等。
* **提供元数据信息**:注解可以用来提供元数据信息,例如 `@Author` 和 `@Version` 等。
下面是一个例子:
javapublic class Person {
@Author("John Doe")
public String getName() {
return "John Doe";
}
}
在上面的例子中,我们使用了 `@Author` 注解来描述 `getName()` 方法的作者。
**注解的保留方式**
Java 中有以下几种注解的保留方式:
* **SOURCE**:该注解只在源代码中保留。
* **CLASS**:该注解在编译后被保留到类文件中。
* **RUNTIME**:该注解在运行时被保留。
下面是一个例子:
java@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value();
}
在上面的例子中,我们使用了 `@Retention` 注解来指定 `MyAnnotation` 的保留方式为 RUNTIME。
**注解的作用目标**
Java 中有以下几种注解的作用目标:
* **TYPE**:该注解可以作用于类、接口、枚举等。
* **FIELD**:该注解可以作用于变量。
* **METHOD**:该注解可以作用于方法。
* **PARAMETER**:该注解可以作用于参数。
下面是一个例子:
java@Target(ElementType.METHOD)
public @interface MyAnnotation {
String value();
}
在上面的例子中,我们使用了 `@Target` 注解来指定 `MyAnnotation` 的作用目标为 METHOD。
**注解的包含方式**
Java 中有以下几种注解的包含方式:
* **NO**:该注解不被包含在 Javadoc 中。
* **YES**:该注解被包含在 Javadoc 中。
下面是一个例子:
java@Documentedpublic @interface MyAnnotation {
String value();
}
在上面的例子中,我们使用了 `@Documented` 注解来指定 `MyAnnotation` 的包含方式为 YES。
**总结**
Java 中的注解是一种特殊的接口,可以用来描述类、方法、变量等的特性。自定义注解需要继承 `java.lang.Annotation` 接口,并且必须使用 `@Retention`、`@Target` 和 `@Documented` 等注解来指定该注解的保留方式、作用目标以及是否被包含在 Javadoc 中。Java 中有以下几种注解的类型、作用和保留方式等。

