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。这个地方还是相似的。


目录
相关文章
|
27天前
|
Java Maven 编译器
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
|
27天前
|
Java API 编译器
Java编译器注解运行和自动生成代码问题之编译时通过参数设置选项值问题如何解决
Java编译器注解运行和自动生成代码问题之编译时通过参数设置选项值问题如何解决
|
27天前
|
编译器 Java
Java编译器注解运行和自动生成代码问题之重写init方法的问题如何解决
Java编译器注解运行和自动生成代码问题之重写init方法的问题如何解决
|
5天前
|
存储 缓存 Java
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中的数据的问题如何解决
Java本地高性能缓存实践问题之使用@CachePut注解来更新缓存中的数据的问题如何解决
|
27天前
|
Java 测试技术 Maven
Java编译器注解运行和自动生成代码问题之在编译时需要设置-proc:none参数问题如何解决
Java编译器注解运行和自动生成代码问题之在编译时需要设置-proc:none参数问题如何解决
|
27天前
|
Java Maven 编译器
Java编译器注解运行和自动生成代码问题之RoundEnvironment和注解类型集合有什么区别
Java编译器注解运行和自动生成代码问题之RoundEnvironment和注解类型集合有什么区别
|
27天前
|
Java 编译器
Java编译器注解运行和自动生成代码问题之指定一个注解处理器处理所有类型的注解的问题如何解决
Java编译器注解运行和自动生成代码问题之指定一个注解处理器处理所有类型的注解的问题如何解决
|
29天前
|
Java 编译器 API
Java进阶之标准注解
【7月更文挑战第15天】Java标准注解包括标记注解(如@Deprecated)、@Override(检查方法重写)、@SuppressWarnings(抑制警告)。多值注解如@RequestMapping在Spring中用于HTTP请求映射。元注解如@Retention控制注解保留策略,@Target指定应用位置。Java8引入类型注解(@FunctionalInterface、@SafeVarargs)和重复注解(@Repeatable)。自定义注解可通过反射读取,如示例中的MyMarkerAnnotation等。
17 2
|
12天前
|
设计模式 存储 安全
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
41 0
|
1月前
|
XML Java 数据格式