文档章节

元注解及注解的自定义

非有非非有
 非有非非有
发布于 2016/10/18 13:48
字数 483
阅读 22
收藏 0

Annotation(注解)是JDK5.0及以后版本引入的。它的作用是修饰编程元素。什么是编程元素呢?例如:包、类、构造方法、方法、成员变量等。

元注解就是修饰注解的注解

注解是JDK 5.0推出来的,这部分JDK源码的作者是:Joshua Bloch(《Effective Java》的作者)。

注解的定义

(1)以@interface关键字定义
(2)注解包含成员,成员以无参数的方法的形式被声明。其方法名和返回值定义了该成员的名字和类型。
(3)成员赋值是通过@Annotation(name=value)的形式。
(4)注解需要标明注解的生命周期,注解的修饰目标等信息,这些信息是通过元注解实现。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Controller {
    ElementType value();
}

分析:

    元注解@Documented    

                Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的.

    元注解@Retention定义注解的生命周期,成员value的值为RetentionPolicy.RUNTIME。

                RetentionPolicy.RUNTIME    被编译器写在class文件中,jvm载入。

                RetentionPolicy.CLASS    被编译器写在class文件中,jvm加载的时候抛掉。默认声明周期。

                RetentionPolicy.SOURCE    保留在源文件,编译过程中被编译器直接抛掉。

    元注解@Target(ElementType.ANNOTATION_TYPE)    拥有这个注解的注解,就是元注解。

                (1)TYPE:指的是在类,接口(包括注解)或者enum上使用的注解。
                (2)FIELD:指的在field属性,也包括enum常量使用的注解。
                (3)METHOD:指的是在方法声明上使用的注解。
                (4)PARAMETER:指的是在参数上使用的注解,
                (5)CONSTRUCTOR: 指的是在构造器使用的注解。
                (6)LOCAL_VARIABLE:指的是在局部变量上使用的注解。
                (7)ANNOTATION_TYPE:指的是在注解上使用的元注解
                (8)PACKAGE:指的是在包上使用的注解。

    成员名称为value,类型为ElementType[]。

 

本文转载自:http://swiftlet.net/archives/1906

非有非非有
粉丝 6
博文 29
码字总数 7498
作品 0
昌平
程序员
私信 提问
Spring boot自定义注解方式实现日志记录

Annontation是Java5开始引入的新特性,中文名称叫注解。 一、常见注解 1.1 JDK自带注解 @Override:表示覆盖或重写父类的方法。 @Deprecated:表示该方法已经过时了。 @suppressWarnings:表...

Lienson
03/28
0
0
注解的那些事儿(二)| 如何自定义注解

自定义注解是自己写框架的必备技能,使用注解能极大地提升开发效率,因此自定义注解是一个高级开发者必备的技能。 要自定义注解,首先需要了解一个注解的构成部分。 一个注解大致可以分为三个...

陈树义
2018/06/06
0
0
Java基础巩固笔记(9)-注解

Contents 注解的应用结构图 元注解 自定义注解 示例代码 参考资料 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层...

卟想苌亣
2017/12/04
0
0
注解-你可能需要知道这些

在日常的开发工作中,尤其是在使用一些比较受欢迎的开源框架时,我们不可避免的都使用到了注解(Annotation),注解的使用范围也越来越广,而且在使用了注解后,我们的代码看起来也更简洁了。...

24K男
2017/09/28
0
0
Java中的注解是如何工作的?

什么是注解? 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据。比如,下面这段代码: 上面的代码中,我重写了toString()方法并使用了@Ov...

小橘猫_
2018/11/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试爱奇艺,竟然挂在第5轮……

今天给大家分享我曾经在爱奇艺的面试,过程还是比较有意思的,可以给大家一些参考 <br> 聊骚阶段 嗲妹妹:你好,我是爱奇艺的HR,我们正在招聘运维开发岗位,请问您最近有在看工作机会吗? ...

上海小胖
53分钟前
4
0
Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
解决多线程并行加载缓存问题(利用guava实现)

依赖 com.google.guava:guava:20.0 import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import j......

暗中观察
昨天
4
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部