示例1—使用注解(标记过时的方法)
在 Java 中,使用 @Deprecated
注解可以标记一个方法或类已经过时,鼓励开发者使用新的实现或方法。
class DeprecatedExample {
@Deprecated
public void oldMethod() {
System.out.println("This method is deprecated.");
}
public void newMethod() {
System.out.println("This is the new method.");
}
public static void main(String[] args) {
DeprecatedExample obj = new DeprecatedExample();
// 调用过时的方法
obj.oldMethod();
// 调用新方法
obj.newMethod();
}
}
在这个示例中,oldMethod
被标记为过时的,当我们调用它时会得到编译器警告,提醒我们不要继续使用这个方法。
示例2—自定义注解
1.定义注解
//自定义注解必须的元注解target,指明注解的作用域(此处指明的是在类和方法上起作用)
@Target({ElementType.TYPE, ElementType.METHOD})
//元注解retention声明该注解在何时起作用(此处指明的是在运行时起作用)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
//注解中需声明参数,格式为:参数类型 + 参数名();
String value() default "";
}
2.使用注解
public class CustomAnnotation {
@MyAnnotation(value = "这是一个测试方法")
public void test() {
System.out.println("执行 test 方法");
}
}
3.获取和使用注解信息
public class AnnotationDemo {
public static void main(String[] args) {
try {
// 获取 CustomAnnotation 类的 Class 对象
Class<CustomAnnotation> clazz = CustomAnnotation.class;
// 获取 test 方法
Method method = clazz.getMethod("test");
// 检查该方法是否有 MyAnnotation 注解
if (method.isAnnotationPresent(MyAnnotation.class)) {
// 获取 MyAnnotation 注解
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
// 打印注解的 value 值
System.out.println("注解的值: " + annotation.value());
}
// 调用 test 方法
CustomAnnotation customAnnotation = new CustomAnnotation();
customAnnotation.test();
} catch (NoSuchMethodException e) {
throw new RuntimeException(e);
}
}
}