
自定义注解
修饰符:注解可以使用修饰符,但如果没有明确指定,默认为 注解名称:自定义注解的名称,需遵循Java命名规范。 注解类型元素:使用
发布日期:2021-05-06 15:52:10
浏览次数:36
分类:精选文章
本文共 1977 字,大约阅读时间需要 6 分钟。
Java注解详解:从基础到实践
1. 声明注解
在Java中,注解是通过使用@interface
关键字来声明的。以下是创建一个注解的基本步骤:
public
。ElementType
枚举来定义注解作用的Java元素类型。示例:
@Target({ElementType.FIELD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Info { String value() default "tracy"; boolean isDelete();}
2. 元注解
元注解用于控制注解的应用范围和生命周期。
2.1 @Target
- 描述:指定注解适用的Java元素类型。
- 类型:
ElementType.TYPE
(类、接口、枚举)、ElementType.FIELD
(字段)、ElementType.METHOD
(方法)、ElementType.PARAMETER
(方法参数)、ElementType.CONSTRUCTOR
(构造函数)、ElementType.LOCAL_VARIABLE
(局部变量)、ElementType.ANNOTATION_TYPE
(注解类型)、ElementType.PACKAGE
(包)、ElementType.TYPE_PARAMETER
(类型变量,Java 1.8及以上)、ElementType.TYPE_USE
(类型使用,Java 1.8及以上)。
2.2 @Retention
- 描述:指定注解的生命周期。
- 类型:
RetentionPolicy.SOURCE
:注解在编译时被丢弃,不包含在类文件中。RetentionPolicy.CLASS
:注解在JVM加载时被丢弃,包含在类文件中,默认值。RetentionPolicy.RUNTIME
:注解在运行时由JVM加载,包含在类文件中。
2.3 @Documented
- 描述:标记注解的元信息可以被Javadoc或文档工具处理。
2.4 @Inherited
- 描述:标记注解可以被子类继承。
3. 注解配置
3.1 属性定义
注解可以包含抽象方法或常数值属性,使用默认值可简化使用。
3.2 元注解结合
通过组合多个元注解,灵活控制注解的应用范围和生命周期。
4. 注解使用示例
4.1 注解定义
@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation { String name();}
4.2 注解使用
@MyAnnotation(name = "MyClass")public class MyClass { // ...}
4.3 元注解应用
@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface FieldAnnotation { String description();}
4.4 动态获取注解
public class AnnotationTest { public static void main(String[] args) { Person person = Person.builder().build(); Class clazz = person.getClass(); if (clazz.isAnnotationPresent(Info.class)) { Info infoAnno = (Info) clazz.getAnnotation(Info.class); System.out.println("Name: " + infoAnno.value() + ", Delete: " + infoAnno.isDelete()); } else { System.out.println("No Info annotation present!"); } }}
通过以上内容,可以清晰地了解Java注解的基本使用方法和元注解的应用场景。从声明注解到实际使用,每一步都可以根据实际需求进行调整和优化。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年04月27日 14时23分29秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2025年中国云计算市场四大趋势前瞻,从零基础到精通,收藏这篇就够了!
2025-03-29
.off打开方式、文件格式和使用代码(Python示例)
2025-03-29
2025年十大最佳漏洞管理工具,从零基础到精通,收藏这篇就够了!
2025-03-29
2025年网络安全五大趋势与十大威胁预测,从零基础到精通,收藏这篇就够了!
2025-03-30
2025想做黑客?先来学习 SQL 注入,零基础入门到精通,收藏这篇就够了
2025-03-30
2025春招计算机就业哪些方向最香?零基础入门到精通,收藏这篇就够了
2025-03-30
2025最全版《安全技术交底》.docx。从零基础到精通,收藏这篇就够了!
2025-03-30
2025最新大模型技术学习过程梳理,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版万字长文入门大语言模型(LLM)零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新0基础怎么转行网络安全?零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新Bash Shell入门指南,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新C++快速入门(适合小白)零基础入门到精通,收藏这篇就够了
2025-03-30
(建议收藏)五款常用优秀的Vue日历组件推荐 纯前端实现 无需额外依赖
2025-03-30
2025版最新CTF选手必藏的50个实战解题思路,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新Java教程(非常详细)零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新LangChain框架快速入门,零基础入门到精通,收藏这篇就够了
2025-03-30
2025版最新Nessus 工具介绍与使用教程,零基础入门到精通,收藏这一篇就够了
2025-03-30