当前位置:首页 > Java

如何注解java

2026-03-19 22:19:11Java

注解的基本概念

Java注解(Annotation)是一种元数据形式,用于为代码提供附加信息。注解不会直接影响代码逻辑,但可以被编译器、开发工具或运行时环境处理。

内置注解类型

Java提供了一些内置注解:

  • @Override:标记方法覆盖父类方法
  • @Deprecated:标记已过时的元素
  • @SuppressWarnings:抑制编译器警告
  • @SafeVarargs:断言方法或构造函数不会对其可变参数执行不安全操作
  • @FunctionalInterface:标记接口为函数式接口

自定义注解

创建自定义注解需要使用@interface关键字:

public @interface CustomAnnotation {
    String value() default "default";
    int count() default 0;
}

元注解

元注解用于注解其他注解:

  • @Target:指定注解可以应用的元素类型
  • @Retention:指定注解保留策略
  • @Documented:标记注解包含在Javadoc中
  • @Inherited:允许子类继承父类的注解
  • @Repeatable:允许在同一元素上重复使用注解

注解的使用示例

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation {
    String author() default "unknown";
    String date();
}

public class TestClass {
    @TestAnnotation(author = "John", date = "2023-01-01")
    public void testMethod() {
        // 方法实现
    }
}

运行时处理注解

通过反射API可以在运行时处理注解:

Method method = TestClass.class.getMethod("testMethod");
TestAnnotation annotation = method.getAnnotation(TestAnnotation.class);
if (annotation != null) {
    System.out.println("Author: " + annotation.author());
    System.out.println("Date: " + annotation.date());
}

注解参数类型限制

注解参数只能是以下类型:

  • 基本数据类型(int、float等)
  • String
  • Class
  • 枚举类型
  • 其他注解类型
  • 以上类型的数组

注解保留策略

通过@Retention指定注解保留期:

  • RetentionPolicy.SOURCE:仅保留在源文件中
  • RetentionPolicy.CLASS:保留在class文件中(默认)
  • RetentionPolicy.RUNTIME:保留到运行时

注解目标限制

通过@Target限制注解可以应用的位置:

  • ElementType.TYPE:类、接口、枚举
  • ElementType.FIELD:字段
  • ElementType.METHOD:方法
  • ElementType.PARAMETER:参数
  • ElementType.CONSTRUCTOR:构造器
  • ElementType.LOCAL_VARIABLE:局部变量
  • ElementType.ANNOTATION_TYPE:注解类型
  • ElementType.PACKAGE:包
  • ElementType.TYPE_PARAMETER:类型参数
  • ElementType.TYPE_USE:类型使用

重复注解

使用@Repeatable实现重复注解:

如何注解java

@Repeatable(Authorities.class)
public @interface Authority {
    String role();
}

public @interface Authorities {
    Authority[] value();
}

@Authority(role="admin")
@Authority(role="user")
public class User {
}

标签: 注解java
分享给朋友:

相关文章

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

如何学java

如何学java

学习Java的基础知识 Java是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件…

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…

如何学好java

如何学好java

理解基础概念 掌握Java的核心概念是学习的基础。包括数据类型、变量、运算符、控制流(如循环和条件语句)、数组等。理解面向对象编程(OOP)的四大特性:封装、继承、多态和抽象。 实践编程练习 通过实…

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…