java注解
发布日期:2021-05-09 05:38:33 浏览次数:14 分类:精选文章

本文共 1386 字,大约阅读时间需要 4 分钟。

Java注解详解

注解介绍

注解是Java 5引进的一种语法,与注释功能类似,但注解是为Java编译器和虚拟机设计的。注解的主要作用是提供元信息,帮助编译器和类加载器执行任务,如反射、动态代理等。


使用场景

注解的核心作用是与反射技术结合使用。没有注解,注解就无法发挥其存在的意义。注解提供了元信息,使得程序能够在运行时获取关于类、方法、字段等的信息,从而实现动态操作和灵活配置。


原生注解

在Java中,自带了多种注解,其中五种元注解用于创建自定义注解,称为五大元注解。剩下的注解是应用级注解,可供开发者直接使用。

三种常见应用级注解

注解名 应用场景 意义
@SuppressWarnings 除了包与注解之外的场景 压制编译器产生的警告信息
@Deprecated 全部 将某项功能标记为过时
@Override 重写的方法 表示方法是从父类或接口继承而来的

示例代码:

@SuppressWarnings("all")
public void test1() {
// 代码内容
}
@Deprecated
public void test2() {
// 代码内容
}
@Override
public String toString() {
// 代码内容
}

五种元注解

五种元注解用于创建自定义注解,常见于元注解的开发中。它们是注解开发的基石。

元注解名 应用场景 意义
@Target 注解可应用的对象类型 表示注解应用的目标元素类型(如类、方法)
@Retention 注解的生命周期 表示注解的存储级别(如运行时、编译时)
@Documented 注解信息是否会被生成文档 表示注解信息会被包含在Javadoc中
@Inherited 注解是否会被子类继承 表示注解可以被标注的类的子类所继承
@Repeatable 是否可以在同一位置多次使用 表示可重复使用某个注解

示例代码:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Repeatable(MyAnnotations.class)
@interface MyAnnotation {
String value();
}

注解的语法

创建注解

  • 使用 @interface 关键字创建注解,注解是特殊接口,自动继承 Annotation 接口。
  • 在注解内部定义注解属性,如 String value()
  • 注解属性定义

    • 属性类型可为基本数据类型、枚举类型、类类型及其数组类型。
    • 可为属性设置默认值,语法为 default 关键字。

    示例代码:

    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Demo3 {
    String value() default "笑笑";
    int age();
    String[] names = new String[10];
    }

    注解是Java编程中一个强大的元编程工具,广泛应用于代码增强、动态配置和反射操作等场景。通过合理使用注解,可以显著提升代码的可维护性和灵活性。

    上一篇:java反射
    下一篇:ThreadLocal类

    发表评论

    最新留言

    感谢大佬
    [***.8.128.20]2025年04月27日 16时52分28秒