注解
2022/4/11 23:19:15
本文主要是介绍注解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、注解
1.1、Annotation 基本概念
作用:
不是程序本身,而是对程序作出解释 可以被其他程序(如编译器等)读取
格式:
@注释名(参数值) ps:不一定有参数
使用情景:
可以附加在 包、类、方法、属性 等上面 可以通过反射机制编程实现对这些元数据的访问
1.2、内置注解
@Override //重写注解 @Deprecated //不推荐使用注解,表示危险或有更好的选择 @SuppressWarnings //抑制警告信息。需要加参数
1.3、元注解
作用
注解其他注解。
主要有4个
@Target:用于描述注解的使用范围(用在哪) @Retention:用于表示需要在什么级别保存注解信息,用于描述注解的声明周期,(SOURCE < CLASS < RUNTIME) @Document:说明该注解将被包含在 javadoc 中 @Inherited:说明子类可以继承父类中的该注解
测试元注解
package com.kuang.annotation; import java.lang.annotation.*; //测试元注解 public class Test01 { @MyAnnotation public void test(){ } } //定义一个注解 //Target 表示我们的注解可以用在哪些地方 //ElementType.TYPE表示能在类级别的生效 @Target(value = {ElementType.METHOD, ElementType.TYPE}) //Retention 表示我们的注解在什么地方还有效 // runtime > class > sources @Retention(value = RetentionPolicy.RUNTIME) //Documented 表示是否将我们的注解生成在 Javadoc中 @Documented //Inherited 子类可以继承父类的注解 @Inherited @interface MyAnnotation{ }
测试自定义注解
package com.kuang.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //自定义注解 public class Test02 { //注解可以显示赋值,如果没有默认值,我们就必须给注解赋值 @MyAnnotation2(name = "帅哥") public void test(){} @MyAnnotation3("帅哥") public void test2(){ } } @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation2{ //注解的参数格式:参数类型 + 参数名(); String name() default ""; int age() default 0; int id() default -1; //如果默认值为-1,代表不存在。同indexof,如果找不到就返回-1 String[] schools() default {"哔哩哔哩", "家里蹲大学"}; } @interface MyAnnotation3{ //若只有一个参数,就可以设置为value //这样就可以只用写("帅哥"),而不用写(name = "帅哥") String value(); }
这篇关于注解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?