
java注解
使用 在注解内部定义注解属性,如
发布日期:2021-05-09 05:38:33
浏览次数:14
分类:精选文章
本文共 1386 字,大约阅读时间需要 4 分钟。
Java注解详解
注解介绍
注解是Java 5引进的一种语法,与注释功能类似,但注解是为Java编译器和虚拟机设计的。注解的主要作用是提供元信息,帮助编译器和类加载器执行任务,如反射、动态代理等。
使用场景
注解的核心作用是与反射技术结合使用。没有注解,注解就无法发挥其存在的意义。注解提供了元信息,使得程序能够在运行时获取关于类、方法、字段等的信息,从而实现动态操作和灵活配置。
原生注解
在Java中,自带了多种注解,其中五种元注解用于创建自定义注解,称为五大元注解。剩下的注解是应用级注解,可供开发者直接使用。
三种常见应用级注解
注解名 | 应用场景 | 意义 |
---|---|---|
@SuppressWarnings | 除了包与注解之外的场景 | 压制编译器产生的警告信息 |
@Deprecated | 全部 | 将某项功能标记为过时 |
@Override | 重写的方法 | 表示方法是从父类或接口继承而来的 |
示例代码:
@SuppressWarnings("all")public void test1() { // 代码内容}
@Deprecatedpublic void test2() { // 代码内容}
@Overridepublic 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编程中一个强大的元编程工具,广泛应用于代码增强、动态配置和反射操作等场景。通过合理使用注解,可以显著提升代码的可维护性和灵活性。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月27日 16时52分28秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
kubernetes社区项目生态概览
2025-04-03
Kubernetes网络插件使用详解
2025-04-03
Kubernetes调度单位Pod
2025-04-03
Kubernetes部署Dashboard实战
2025-04-03
Kubernetes集群升级实战
2025-04-03
KuiperInfer深度学习推理框架-源码阅读和二次开发(3):计算图
2025-04-03
KxMenu下拉菜单
2025-04-03
KXML2部分详解(J2ME)
2025-04-03
lambda表达式与匿名内部类与双冒号(::)
2025-04-04
lamp 一键安装
2025-04-04
Lamp(Fpm-Php)基本配置
2023-01-30
laradock 安装使用 kafka
2023-01-30
laravel 5.3 给容器传参
2023-01-30
laravel 5.5 -- Eloquent 模型关联
2023-01-30
laravel mix
2023-01-30
Laravel Passport
2023-01-30
laravel 之 Eloquent 模型修改器和序列化
2023-01-30