`

JAVA 注解示例 详解

阅读更多
http://www.iteye.com/topic/400085
java内置了三种注解,定义在java.lang包中
@Override
@Deprecated  不赞成的
@SuppressWarnings


/* 
 * 元注解@Target,@Retention,@Documented,@Inherited 
 *  
 *     @Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括: 
 *         ElemenetType.PACKAGE 包声明 
 *         ElemenetType.TYPE 类,接口(包括注解类型)或enum声明
 *         ElemenetType.FIELD 域声明(包括 enum 实例)
 *         ElemenetType.METHOD 方法声明
 *         ElemenetType.CONSTRUCTOR 构造器声明 
 *         ElemenetType.LOCAL_VARIABLE 局部变量声明
 *         ElemenetType.PARAMETER 参数声明
 *          
 *     @Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括: 
 *         RetentionPolicy.SOURCE 注解将被编译器丢弃 
 *         RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃(默认)
 *         RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。 
 *          
 *     @Documented 将此注解包含在 javadoc 中 
 *      
 *     @Inherited 允许子类继承父类中的注解 
 *    
 */  
@Target(ElementType.METHOD)  
@Retention(RetentionPolicy.RUNTIME)  
@Documented  
@Inherited  
/* 
 * 定义注解 Test 
 * 注解中含有两个元素 id 和 description 
 * description 元素 有默认值 "no description" 
 */  
public @interface Test {  
    public int id();  
    public String description() default "no description";  
} 
 
1)只能用public或默认(default)这两个访问权修饰.
2)参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和String,Enum,Class,annotations等数据类型,以及这一些类型的数组.
3)如果只有一个参数成员,最好把参数名称设为"value",后加小括号.



public class Test_1 {  
    @Test(id = 1, description = "hello method_1")  //应用注解
    public void method_1() {  
    }  
  
    @Test(id = 2)  
    public void method_2() {  
    }  
  
    public static void main(String[] args) {  
        Method[] methods = Test_1.class.getDeclaredMethods(); //方法  
        for (Method method : methods) {  
            if (method.isAnnotationPresent(Test.class)) {  //包含注解
                Test annotation = method.getAnnotation(Test.class);  //获取注解
                System.out.println("Test( method = " + method.getName()  
                        + " , id = " + annotation.id() + " , description = "  
                        + annotation.description() + " )");  
            }  
        }  
    }  
}  
分享到:
评论
1 楼 huanqi_dou 2011-10-20  

相关推荐

    Java注解资料

    主题:JAVA 注解示例 详解 注解(Annotation) 相当于一种标记,在程序中加了注解就等于为程序打上了某种标记。以后,java编译器、开发工具和其它程序可以使用反射来了解你的类及各种元素上有无某种标记,找到有...

    spring注解注入示例详解-(三)

    本文是我在业余时间学习spring注解注入之后的整理总结,希望能给对spring注入技术感兴趣和正在学习spring注入的同学们一些帮助。文中的内容都是我自己的摸索总结,当中难免会有偏差和错误,希望spring达人能够及时...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的...

    spring注解注入示例详解-(二)

    本文是我在业余时间学习spring注解注入之后的整理总结,希望能给对spring注入技术感兴趣和正在学习spring注入的同学们一些帮助。文中的内容都是我自己的摸索总结,当中难免会有偏差和错误,希望spring达人能够及时...

    Java 中的注解详解及示例代码

    本文主要介绍Java 中的注解,这里提供了详细的相关资料,及示例代码,帮助大家学习理解,有兴趣的小伙伴可以参考下

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    13.2.4 示例 414 13.3 网上书店程序 418 13.4 小结 440 第14章 jsp开发的两种模型 441 14.1 模型1 441 14.2 模型2 445 14.3 小结 449 第15章 标签库(tag library) 450 15.1 标签库api 450 15.1.1 标签的...

    java常用类解析及示例及一些工具类源代码

    主要讲解了System类、Object类、Arrays类、Cloneable接口、IO系统输入输出类及装饰类、IO系统文本读写工具类、IO系统二进制读写工具类、对象序列化工具类、File类及文件搜索工具类、java异常机制及自定义异常类、...

    java @Profile注解详解

    主要介绍了java @Profile注解详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    java基础案例与开发详解案例源码全

    2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32...

    java元注解@Inherited的使用详解

    主要介绍了java元注解@Inherited的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java利用反射如何查找使用指定注解的类详解

    主要给大家介绍了关于Java利用反射如何查找使用指定注解的类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    详解Observer Pattern(观察者模式)在Java中的使用原理

    本人觉得该示例是对该模式的非常精典的说明,于是花点功夫来翻写它,因为他的代码没有注释说明该模式的设计思想怎样体现在代码中去,所以,本人结合代码注释了关键代码的中文意义说明作者怎样表示该设计模式的,以...

    Java中自定义注解介绍与使用场景详解

    最近有所了解到自定义注解的应用,因此学习了一下,下面这篇文章主要给大家介绍了关于Java中自定义注解介绍与使用场景的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    Spring Boot Mybatis使用详解含示例(值得珍藏)

    MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象)映射成数据库中的记录。 以下是 MyBatis 的主要特点: 简单易学:MyBatis 框架结构...

Global site tag (gtag.js) - Google Analytics