转:java 注解 @Retention @interface 元数据

原文: http://www.cnblogs.com/coolgun/p/3802535.html

java注解

即是注释了,百度解释:也叫元数据。一种代码级别的说明。 个人理解:就是内容可以被代码理解的注释,一般是一个类。

元数据

也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制。只有两个: @Retention 和 @Target  (我只查到这两个).

@Retention :用来说明该注解类的生命周期。它有以下三个参数:

RetentionPolicy.SOURCE  : 注解只保留在源文件中

RetentionPolicy.CLASS  : 注解保留在class文件中,在加载到JVM虚拟机时丢弃

RetentionPolicy.RUNTIME  : 注解保留在程序运行期间,此时可以通过反射获得定义在某个类上的所有注解。

@Target :  用来说明该注解可以被声明在那些元素之前。

ElementType.TYPE:说明该注解只能被声明在一个类前。

ElementType.FIELD:说明该注解只能被声明在一个类的字段前。

ElementType.METHOD:说明该注解只能被声明在一个类的方法前。

ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前。

ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前。

ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前。

ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前。

ElementType.PACKAGE:说明该注解只能声明在一个包名前。

注解的定义:

注解的定义使用关键词 @interface ,并在上面一行注明@Rentention(arg) 或者@Target(args) , 样例如下:

@Rentention(RetentionPolicy.RUNTIME)

public @interface Annotation01 {

//定义公共的final静态属性

.....

//定以公共的抽象方法

......

}

常见基本内置注解

@Override  当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错。 定义如下:

@Retention(RetentionPolicy.SOURCE )

public   @interface  Override

@Deprecated  用来表示某个类的属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰。 定义如下:

@Retention(RetentionPolicy.SOURCE )

public   @interface  Deprecated

@SuppressWarnings  用来压制程序中出来的警告。 定义如下:

@Retention(RetentionPolicy.SOURCE )

public   @interface  SuppressWarnings

注解的使用

定义注解--》声明注解-->获得注解;

其中 获得注解 通过被修饰的对象的 getAnnotation 或 getAnnotations 方法获得。

时间: 2024-11-03 07:17:03

转:java 注解 @Retention @interface 元数据的相关文章

java 注解@Retention @interface 元数据

原文  http://www.cnblogs.com/coolgun/p/3802535.html java注解 即是注释了,百度解释:也叫元数据.一种代码级别的说明. 个人理解:就是内容可以被代码理解的注释,一般是一个类. 元数据 也叫元注解,是放在被定义的一个注解类的前面 ,是对注解一种限制.只有两个: @Retention 和 @Target  (我只查到这两个). @Retention :用来说明该注解类的生命周期.它有以下三个参数: RetentionPolicy.SOURCE  :

Java注解Retention、Documented、Target的含义

Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值: 1.RetentionPolicy.SOURCE -- 这种类型的Annotations只在源代码级别保留,编译时就会被忽略 2.RetentionPolicy.CLASS -- 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略 3.RetentionPolicy.RUNTIME -- 这种类型的Annotations将被JVM保留,所以他们能在运行时

Java注解介绍

原文链接: Java Annotations: An Introduction原文日期: 2005年10月14日翻译日期: 2014年07月20日翻译人员: 铁锚 翻译完后,感觉这篇文章是不是在http://www.developer.com被挖坟了? Java注解介绍 基于注解(Annotation-based)的Java开发无疑是最新的开发趋势.[译者注: 这是05年的文章,在2014年,毫无疑问,多人合作的开发,使用注解变成很好的合作方式,相互之间的影响和耦合可以很低]. 基于注解的开发将

Java注解(Annotation):请不要小看我!

Java注解是一系列元数据,它提供数据用来解释程序代码,但是注解并非是所解释的代码本身的一部分.注解对于代码的运行效果没有直接影响. 网络上对注解的解释过于严肃.刻板,这并不是我喜欢的风格.尽管这样的解释听起来非常的专业. 为了缓解大家对“注解”的陌生感,我来说点有意思的.其实我对“注解”这个词的第一印象并不是Java的注解,而是朱熹的名作<四书章句集注>.为什么我会有这么大的脑洞呢?因为当我试着去翻译Annotation这个单词的时候,得到的结果是“注释”而不是“注解”.<四书章句集注

Java:注解Annotation(元数据)

本文内容: 注解Annotation的介绍 基本注解的用法 首发日期:2018-07-28 注解Annotation的介绍 Annotation是代码中的特殊标记,能够在编译.类加载.运行时被识别(需要设置),并根据不同的Annotation来执行不同的处理. Annotation可以修饰包.类.构造器.函数.成员变量.局部变量的声明.参数等程序元素.Annotation帮助这些元素来设置元数据,程序从元数据中获取信息来处理这些元素. 元数据可以描述代码间关系或者代码与其它资源的关系,比如说在w

Java注解之Retention、Documented、Target介绍

先看代码,后面一个个来解析: @Retention(RetentionPolicy.RUNTIME) @Target(value = {ElementType.METHOD, ElementType.TYPE}) @Documented public @interface Authority { }   Retention注解 Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值: 1.RetentionPolicy.SOURCE —— 这种类型的Annotation

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注

Java注解

注解是一种元数据形式,提供关于不是程序部分的程序的数据.操作代码上的注解不影响注解的代码. 注解有许多用途,其中: 编译器信息 -- 注解被用于编译器检测错误或抑制警告. 编译时和部署时处理 -- 软件工具能处理注解信息生成代码.XML文件等等. 运行时处理 -- 一些注解可用在运行时检查. 1     注解基础 1.1    注解的格式 最简单的注解形式如下所示: @Entity 在符号字符(@)告诉编译器这是一个注解.在下面的例子中,注解的名称是Override: @Override voi

Java 注解

Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法.Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据. Annotation能被用来为某个程序元素(类.方法.成员变量等)关联任何的信息.需要注意的是,这里存在着一个基本的规则:Annotation不能影响程序代码的执行,无论增加.删除 Annotation,代码都始终如一的执行.另