自定义一个Annotation,要求只能在方法的声明上使用,定义完成后测试Annotation的功能
import java.lang.annotation.*;
// 自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyMethodAnnotation {
// 如果需要,添加任何属性
}
// 测试Annotation的功能
class MyClass {
// 在方法声明上使用自定义注解
@MyMethodAnnotation
public void myMethod() {
System.out.println("Method with custom annotation");
}
}
public class Main {
public static void main(String[] args) throws NoSuchMethodException {
// 获取MyClass类的myMethod()方法
java.lang.reflect.Method myMethod = MyClass.class.getMethod("myMethod");
// 检查方法上是否存在自定义注解
if (myMethod.isAnnotationPresent(MyMethodAnnotation.class)) {
System.out.println("Custom annotation is present");
} else {
System.out.println("Custom annotation is not present");
}
}
}
定义一个Annotation,要求在生成的文档中含有注释信息
import java.lang.annotation.*;
/**
* 带有文档注释的自定义注释。
*/
@Documented//将被Javadoc工具提取成文档
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface DocumentedAnnotation {
/**
* 注释元素的描述.
*
* @return 描述.
*/
String description() default "";
/**
* 版本信息
*
* @return 版本.
*/
String version() default "1.0";
}