Java注解介绍

Java注解是Java编程语言的一种重要特性,它提供了一种在程序中以元数据的形式添加信息的方式。注解可以被用于类、方法、字段以及其他程序元素上,以提供额外的信息或者指示编译器、工具或者运行时环境进行特定的操作。

以下是一些Java注解的常见用途:

  1. 标记注解(Marker Annotation) :简单地标记一个元素,不包含任何成员。例如,@Override注解用于标记一个方法是覆盖父类方法的,编译器会检查该方法是否真的覆盖了父类方法。

  2. 单值注解(Single Value Annotation) :包含一个成员变量的注解。例如,@SuppressWarnings注解用于抑制编译器警告,它可以接受一个字符串参数,指定要抑制的警告类型。

  3. 多值注解(Multi Value Annotation) :包含多个成员变量的注解。多值注解在定义时要指定默认值。例如,@Author注解可以包含作者的姓名和创建日期等信息。

  4. 元注解(Meta-Annotation) :用于注解其他注解的注解。例如,@Retention@Target@Documented等注解就是元注解,用于控制注解的行为。

  5. 自定义注解(Custom Annotation) :开发人员可以根据自己的需求定义自己的注解。自定义注解通过@interface关键字定义,并且可以包含成员变量、方法等。

Java注解的使用场景非常广泛,它们可以用于实现自动化配置、依赖注入、代码生成、测试等方面。通过合理使用注解,可以提高代码的可读性、可维护性,并且降低开发人员的工作量。

复制代码
import java.lang.annotation.*;

//定义一个自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MethodInfo {
 String author() default "Unknown";
 String date();
 int version() default 1;
}

//使用自定义注解
public class Main {
	@MethodInfo(author = "John", date = "2024-05-13", version = 2)
    public static void myMethod() {
        System.out.println("Hello, world!");
    }

    public static void main(String[] args) throws Exception {
        // 获取注解信息
        MethodInfo annotation = Main.class.getMethod("myMethod").getAnnotation(MethodInfo.class);
        System.out.println("Author: " + annotation.author());
        System.out.println("Date: " + annotation.date());
        System.out.println("Version: " + annotation.version());
    }
}
相关推荐
你怎么知道我是队长4 小时前
C语言---枚举变量
c语言·开发语言
李慕婉学姐4 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
吃茄子的猫4 小时前
quecpython中&的具体含义和使用场景
开发语言·python
じ☆冷颜〃4 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用
笔记·python·深度学习·网络协议·算法·机器学习
云栖梦泽4 小时前
易语言中小微企业Windows桌面端IoT监控与控制
开发语言
数据大魔方4 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
POLITE34 小时前
Leetcode 23. 合并 K 个升序链表 (Day 12)
算法·leetcode·链表
楚来客5 小时前
AI基础概念之八:Transformer算法通俗解析
人工智能·算法·transformer
Echo_NGC22375 小时前
【神经视频编解码NVC】传统神经视频编解码完全指南:从零读懂 AI 视频压缩的基石
人工智能·深度学习·算法·机器学习·视频编解码
会员果汁5 小时前
leetcode-动态规划-买卖股票
算法·leetcode·动态规划