java 如何自定义注解
时间: 2024-02-02 20:08:30 浏览: 94
Java自定义注解需要使用到元注解@Target、@Retention、@Documented和@Inherited,其中@Target用于指定注解的作用范围,@Retention用于指定注解的生命周期,@Documented用于指定注解是否出现在JavaDoc中,@Inherited用于指定注解是否可以被继承。下面是一个自定义注解的例子:
```java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value() default "";}
```
上面的代码定义了一个名为MyAnnotation的注解,它只能用于方法上,且在运行时保留。该注解包含一个名为value的属性,其默认值为空字符串。可以在方法上使用该注解,并为value属性赋值,例如:
```java
public class MyClass {
@MyAnnotation("hello")
public void myMethod() {
// do something
}
}
```
上面的代码在myMethod方法上使用了MyAnnotation注解,并为value属性赋值为"hello"。可以通过反射获取该注解及其属性值,例如:
```java
MyAnnotation annotation = myMethod.getAnnotation(MyAnnotation.class);
String value = annotation.value(); // 获取value属性值,即"hello"
```
阅读全文