文章目录

  • 1. 概念
  • 2. 元注解

1. 概念

代码中的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理,未来的开发模式都是基于注解的,相对较简洁

需要反射去读取注解信息,再去读其成员的值,再做事,没有注解的话只能用XML配置文件去做

自定义注解没有使用反射读取注解就没有信息处理流程,也就没有意义

类加载之后将其加载到内存中,此时称为运行时类


框架=注解+反射+设计模式

/** @Author tylt* @Description //TODO 这是描述文档相关性质的注解* @Date 2021/11/26 15:22* @Method main* @Param [args]* @return void**/
public static void main(String[] args) {System.out.println("描述文档相关的注解\n");}

JDK内置的三个基本注解,编译时进行格式检查

@Override//限定重写父类方法@Deprecated//表示已过时
@SuppressWarnings("unused")//抑制未使用编译器警告int num = 10;
@SuppressWarnings({"unused","rawtypes"})//rawtypes关于泛型使用抑制ArrayList objects = new ArrayList();

JavaSE基础版 —> JavaEE

public @interface MyAnnotation {//自定义注解,声明为@interface,参照SuppressWarnings//成员变量(称为配置参数)以无参方法形式命名,如果只有一个成员变量,建议参数名为value//没有成员的称为标记表示标识作用/*成员变量*/String value();//没有默认值时要指定@MyAnnotation(value="hi")String hello() default "hello";//使用default指定默认值,要修改使前面使用@MyAnnotation(hello="hi")}

2. 元注解

对注解进行解释说明的注解

提一下:元数据 例如String name = “tylt”,真实数据是tylt也是最重要的,那么String name就是修饰真实数据的数据,叫元数据

@Retention(RetentionPolicy.CLASS)
//指定该注解的生命周期,其中包含一个RetentionPolicy的枚举类
/** @Description //TODO 枚举类参数如下* RetentionPolicy.SOURCE:在源件中有效(即源文件保留),编译时编译器将直接丢弃此注释* RetentionPolicy.CLASS:默认值,在class文件中有效(即class保留),当运行Java程序时,JVM不会保留注解。* RetentionPolicy.RUNTIME:在运行时有效(即运行时保留),当运行Java程序时,JVM会保留注释,程序C才可以通过反射获取该注释**/
@Target({TYPE,FIELD,CONSTRUCTOR,METHOD})
//指明当前注解可以修饰哪种类型:例如类(TYPE),构造器,形参,方法//自定义注解通常都使用Retention、Target两个元注解
/***************************************************/
@Documented
//表示可被JavaDoc提取为文档,因为默认情况下javadoc不包含注解,定义为Documented的注解必须设置Retention为RUNTIME
@Inherited
//修饰的注解具有继承性,父类中声明后子类中也具有@Repeatable(MyAnnotations.class)//可重复注解public @interface MyAnnotation {String value();}
@Target({TYPE,FIELD,CONSTRUCTOR,METHOD})
@Retention(RetentionPolicy.CLASS)
@Inherited
@Documented
public @interface MyAnnotations {MyAnnotation[] value();
}
public class Test {@MyAnnotation(value="hi")@MyAnnotation(value="ho")//可重复注解public static void main(String[] args) {}
}

注解(Annotation)相关推荐

  1. Java注解(Annotation)详解

    转: Java注解(Annotation)详解 幻海流心 2018.05.23 15:20 字数 1775 阅读 380评论 0喜欢 1 Java注解(Annotation)详解 1.Annotati ...

  2. 一小时搞明白自定义注解(Annotation)

    原文链接:http://blog.csdn.net/u013045971/article/details/53433874 什么是注解 Annotation(注解)就是Java提供了一种元程序中的元素 ...

  3. Android 自定义注解(Annotation)

    现在市面上很多框架都有使用到注解,比如butterknife库.EventBus库.Retrofit库等等.也是一直好奇他们都是怎么做到的,注解的工作原理是啥.咱们能不能自己去实现一个简单的注解呢.注 ...

  4. java基础-注解Annotation原理和用法

    转载自 http://www.wolfbe.com/detail/201608/265.html 在很多java代码中都可以看到诸如@Override.@Deprecated.@SuppressWar ...

  5. 让别人和自己看懂自己的程序代码?一文掌握Java单行多行、文档注释以及注解(Annotation)超详细的理解使用,IDEA注释注解快捷键和模板,提高程序代码更有可读性

    文章目录 单行和多行注释 文档注释(Java特有) Annotation(注解)的理解 常见的Annotation示例 IDEA注释注解快捷键及模板 自定义 Annotation JDK 中的元注解 ...

  6. Java注解Annotation 完成验证

    Java注解Annotation用起来很方便,也越来越流行,由于其简单.简练且易于使用等特点,很多开发工具都提供了注解功能,不好的地方就是代码入侵比较严重,所以使用的时候要有一定的选择性. 这篇文章将 ...

  7. java注释和注解_深入理解JAVA注解(Annotation)以及自定义注解

    Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制.Java 语言中的类.方法.变量.参数和包等都可以被标注.注解可以看作是一种特殊的标记,在程序在编译或 ...

  8. 注解Annotation的IoC:从@Autowired到@Component

    注解Annotation的IoC:从@Autowired到@Component 2017-01-23 目录 1 什么是注解 2 不使用注解示例   2.1 com.springioc.animal.M ...

  9. Enum枚举类|注解Annotation

    Enum枚举类 ①枚举类和普通类的差别: 使用 enum 定义的枚举类默认继承了 java.lang.Enum 类 枚举类的构造器仅仅能使用 private 訪问控制符 枚举类的全部实例必须在枚举类中 ...

  10. java 注解: Annotation

    java 注解: Annotation 普通注解 自定义注解 元注解 注解: 位于源码中,用来修饰程序的元素,但不会对被修饰的对象有直接的影响. 可增加程序的动态性. 普通注解 普通注解:为java代 ...

最新文章

  1. 按下回车表示确定提交
  2. 程序员的自我修养--链接、装载与库笔记:Windows PE/COFF
  3. 网站网页编写需要注意哪些问题?
  4. ubuntu 导入mysql_Ubuntu 下MySQL导入数据库.sql文件 命令
  5. TYVJ P1062 合并傻子 Label:环状dp
  6. 使用和了解Valgrind核心:高级主题
  7. html css js速成_CSS速成课程
  8. 无意间发现的java的相关资料
  9. javascript--函数(一)
  10. 2017-2018-1 20155229 实验五 《通讯协议设计》
  11. 如何在移动网页上“禁用”缩放?
  12. CUDA 和 GPU
  13. 常见报错_【办公】文档打印常见报错,怎么办?
  14. 整站下载工具 webzip
  15. 微众银行软件测试笔试题面试题
  16. 三大条件致病菌|大肠埃希氏菌、血链球菌、李斯特菌
  17. unity材质球发光_Unity3D - 发光材质(Emissive Materials)
  18. 学习系列--最优学习内容选择
  19. C语言怎么实现语音功能
  20. php酷狗音乐json,酷狗音乐API

热门文章

  1. Oracle数据库的基础
  2. 不限流量 全网CDN图床 图床API_聚合图床
  3. synology nfs_如何为您的Synology NAS创建本地备份
  4. hibernate注解映射继承关系
  5. C++11之防止类型收窄(列表初始化)
  6. vue+django2.0.2-rest-framework 生鲜项目(三)
  7. Vista 兼容软件列表
  8. 家电行业竞争日趋白热化,海尔缘何能创造七连冠奇迹?
  9. Python 读书笔记(1)
  10. 陈慧琳“《江山美人》是我的代表作”