Java注解

简介: Java注解

目录


什么是注解(Annotation)?

Annotaion的作用:

Annotation的格式:

Annotation在哪里使用?

元注解

自定义注解


什么是注解(Annotation)?

Annotaion的作用:

不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别)


可以被其他程序(比如:编译器等)读取。


Annotation的格式:

注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如@SuppressWarnings(value="unchecked")。


Annotation在哪里使用?

可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。


元注解

元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型作说明。


这些类型和它们所支持的类在java.lang.annotation包中可以找到,(@Target,@Retention,@Documented,@Inherited)


@Target:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)


@Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期


(SOURCE<CLASS<RUNTIME)


@Document:说明该注解将被包含在javadoc中


@Inherited:说明子类可以继承父类中的该注解


自定义注解

使用@interface自定义注解是,自动继承了java.lang.annotation.Annotation接口


分析:


@interface用来声明一个注解,格式:public @interface 注解名 {定义内容}


其中的每一个方法实际上是声明了 一个配置参数


方法的名称就是参数的名称


返回值类型就是参数的类型(返回值只能是基本类型,Class,String,enum).


可以通过default来声明参数的默认值


如果只有一个参数成员,一般参数名为value


注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值。如果默认值为-1,代表不存在,indexof,如果找不到就返回-1。这个地方还是相似的。


目录
相关文章
|
2月前
|
Java Maven 编译器
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
110 1
|
2月前
|
Java API 编译器
Java编译器注解运行和自动生成代码问题之编译时通过参数设置选项值问题如何解决
Java编译器注解运行和自动生成代码问题之编译时通过参数设置选项值问题如何解决
|
7天前
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
2天前
|
Java 编译器 测试技术
|
13天前
|
存储 JSON 前端开发
【Java】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天
在实际项目中,使用 `@JsonFormat(pattern = &quot;yyyy-MM-dd&quot;)` 注解导致出生日期少了一天的问题,根源在于夏令时的影响。本文详细解析了夏令时的概念、`@JsonFormat` 注解的使用方法,并提供了三种解决方案:在注解中添加 `timezone = GMT+8`、修改 JVM 参数 `-Duser.timezone=GMT+08`,以及使用 `timezone = Asia/Shanghai
10 0
【Java】用@JsonFormat(pattern = “yyyy-MM-dd“)注解,出生日期竟然年轻了一天
|
22天前
|
Java
Java系列之 IDEA 为类 和 方法设置注解模板
这篇文章介绍了如何在IntelliJ IDEA中为类和方法设置注解模板,包括类模板的创建和应用,以及两种不同的方法注解模板的创建过程和实际效果展示,旨在提高代码的可读性和维护性。
|
22天前
|
存储 缓存 Java
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中数据的问题如何解决
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中数据的问题如何解决
|
22天前
|
Java 编译器 开发者
【Java 第八篇章】注解
从JDK5起,Java引入注解作为元数据支持,区别于注释,注解可在编译、类加载和运行时被读取处理。注解允许开发者在不影响代码逻辑的前提下嵌入补充信息。核心概念包括`Annotation`接口、`@Target`定义适用范围如方法、字段等,`@Retention`设定生命周期,如仅存在于源码或运行时可用。Java提供了内置注解如`@Override`用于检查方法重写、`@Deprecated`标记废弃元素、`@SuppressWarnings`抑制警告。自定义注解可用于复杂场景,例如通过反射实现字段验证。
13 0
|
2月前
|
编译器 Java
Java编译器注解运行和自动生成代码问题之重写init方法的问题如何解决
Java编译器注解运行和自动生成代码问题之重写init方法的问题如何解决
|
2月前
|
Java 测试技术 Maven
Java编译器注解运行和自动生成代码问题之在编译时需要设置-proc:none参数问题如何解决
Java编译器注解运行和自动生成代码问题之在编译时需要设置-proc:none参数问题如何解决