注解

本文深入解析Java注解的种类和用途,包括标准注解如@Override、@Deprecated和元注解如@Target、@Retention等。介绍了注解如何增强代码的可读性和维护性,以及如何在实际开发中应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注解

注解分为标准注解元注解

标准注解
  • @Override: 对覆盖超类中的方法进行标识,如果被标记的方法并没有实际覆盖超类中的方法,则编译器会发出错误警告。
  • @Deprecated:对不鼓励使用或者已经过时的方法添加注解,当编程人员使用这些方法时,将会在编译时显示提示信息。
  • @SuppressWarnings:选择性地取消特定代码段中的警告。
  • @SafeVarargs:JDK 7 新增,用来声明使用了可变长度参数的方法,其在与泛型类一起使用时不会出现类型安全问题。
元注解

元注解就是用来注解其他注解,从而创建新的注解。

  • @Targe:注解所修饰的对象范围。
  • @Inherited:表示注解可以被继承。
  • @Documented:表示这个注解应该被 JavaDoc 工具记录。
  • @Retention: 用来声明注解的保留策略。
  • @Repeatable:JDK 8 新增,允许一个注解在同一声明类型(类、属性或方法)上多次使用。

@Targe 注解取值是一个 ElementType 类型的数组,有以下几种取值:

  • ElementType.Type:能修饰类、接口或枚举类型。
  • ElementType.FIELD:能修饰成员变量。
  • ElementType.METHOD:能修饰方法。
  • ElementType.PARAMETER:能修饰参数。
  • ElementType.CONSTARUCTOR:能修饰构造方法。
  • ElementType.LOCAL_VARLABLE:能修饰局部变量。
  • ElementType.ANNOTATION_TYPE:能修饰注解。
  • ElementType.PACKAGE:能修饰包。
  • ElementType.TYPE_PARAMETER:类型参数声明。
  • ElementType.TYPE_USE:使用类型。

@Retention 注解有3种类型,分别表示不同级别的保留策略。

  • RetentionPolicy.SOURCE:源码级注解。注解信息只会保留在.java 源码中,源码在编译后,注解信息被丢弃,不会保留在.class 中。
  • RetentionPolicy.CLASS:编译级注解。注解信息会保留在.java 源码以及.class 中。当运行 Java 程序时,JVM 会丢弃该注解信息,不会保留在 JVM 中。
  • RetentionPolicy.PUNTIME:运行时注解。当运行 Java 程序时,JVM 也会保留该注解信息,可以通过反射获取该注解信息。

简单的应用

//能被 JavaDoc 工具类记录
@Documented
//修饰方法
@Target(ElementType.METHOD)
//运行时注解(生命周期最长)
@Retention(RetentionPolicy.RUNTIME)
public @interface Swordsman {
    //default 默认值
    String name() default  "注解名字";
}  

public class AnnotationTest {
	@Swordsman(name = "haha")
	public String fighting(){
    	return "";
	}
}  


public class AnnotaionProcessor {
public static void main(String[] args){
    //获取该类使用注解的方法数组
    Method[] declaredMethods = AnnotationTest.class.getDeclaredMethods();
    for(Method m:declaredMethods){
        //返回指定类型的注解对象
        Swordsman annotation = m.getAnnotation(Swordsman.class);
        System.out.println(annotation.name());
    }
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值