`
xmong
  • 浏览: 262747 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java annotation注解

阅读更多
1. Annotation的声明方式
Annotation类型那个声明于一般的接口声明极为相似,只是其关键字为@interface,其属性必须带有小括号,其实更像定义方法,下面文章以属性称之。

2. 常见的几种annotation
•  @Override: 用在方法,说明这个方法打算重写父类中的另一个方法的声明。
•  @Deprecated: 用于所有元素,说明该方法或属性等已经过时,不建议使用,编译器会产生警告信息,通常是因为它很危险或存在更好的选择。
•  @SuppressWarnings: 取消显示指定的编译器警告。

3.自定义annotation
3.1 @Retention
表示注释类型的注释要保留多久,注解的生命周期,不声明默认为class策略,可选下面三种策略:
1,RetentionPolicy.SOURCE: 这个Annotation类型的信息只会保存在程序源码中,源码如果经过了编译之后,Annotation的数据就会消失,并不会保存在编译好的.class二进制文件中。
2,RetentionPolicy.CLASS: 这个Annotation类型的信息保留在程序源码中,同时也会保存在编译好的.class文件中,在执行的时候并不会加载到JVM中。(默认)
3,RetentionPolicy.RUNTIME: 表示在源码、编译好的.class文件中保存信息,在执行的时候会把这些信息加载到JVM中,这样可以使用反射将其信息获取出来。

3.2 @Target
表示注解类型所使用的程序元素,不声明可以用在任一元素中。
1,ElementType.ANNOTATION_TYPE: 注释类型
2,ElementType.CONSTRUCTOR: 构造方法
3,ElementType.FIELD: 字段(包括枚举常量)
4,ElementType.LOCAL_VARIABLE: 局部变量
5,ElementType.METHOD: 方法
6,ElementType.PACKAGE: 包
7,ElementType.PARAMETER: 参数
8,ElementType.TYPE: 类Class、接口Interface(包括注释类型Annotation)或枚举Enum

3.3 @Documented
表示某一类型的注释将通过javadoc和类似的默认工具进行文档化,文档化时其注释部分将成为注释元素的公共API的一部分。

3.3 @Inheried
表示允许子类继承父类中的注解

4. 案例实现
TestAnnotation.java   自定义Annotation类
Test.java  测试类

package com.anotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 *  自定义注解类
 * @author zhimeng
 */

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation {

    /**
     * 为注解添加属性name,默认值为:zhimeng
     */
    public String name() default "zhimeng";
    
    public String mail();
    
}



测试注解

package com.anotation;

import java.lang.reflect.Method;

/**
 * @author zhimeng
 */
public class Test {

    @TestAnnotation(mail = "")
    public void test1(){}
    
    /**
     * 调用注解赋值
     */
    @TestAnnotation(name="xiaohong", mail = "zhimeng@126.com")
    public void test2(){}
    
    
    public static void main(String[] args) {
        Method[] methods = Test.class.getDeclaredMethods();
        
        for (Method method : methods) {
            /**
             * 检查方法是否有注解
             */
            boolean hasAnnotation = method.isAnnotationPresent(TestAnnotation.class);
            if(hasAnnotation){
                //获取注解
                TestAnnotation testAnnotation = method.getAnnotation(TestAnnotation.class);
                System.out.println("method:"+method.getName()
                                   +", name:"+testAnnotation.name()
                                   +", mail:"+testAnnotation.mail());
            }
        }
    }
    
    
}


输出结果:
method:test1, name:zhimeng, mail:
method:test2, name:xiaohong, mail:zhimeng@126.com

分享到:
评论

相关推荐

    Java Annotation注解技术

    Java Annotation注解技术是自Java SE 5.0版本引入的一种元编程机制,它允许程序员在源代码的各个层面(如类、方法、变量等)添加元数据,以供编译器、JVM或第三方工具在编译时或运行时进行处理。Annotation简化了...

    Java Annotation注解.doc

    Java Annotation,也称为注解,是Java编程语言中的一种元数据机制,用于向编译器、JVM或工具提供有关代码的附加信息。这些信息不直接影响代码的执行,但可以被编译器或运行时环境用来执行特定的操作,如代码分析、...

    Java Annotation注解

    本篇将深入探讨Java Annotation注解的相关知识点。 1. **注解类型**: Java提供了三种类型的注解:源码级注解、编译器级注解和运行时注解。源码级注解在编译后不保留,只用于源码阶段;编译器级注解会影响编译过程...

    java Annotation 注解

    Java Annotation,也称为注解,是Java编程语言中的一种元数据机制,自JDK 5.0开始引入。注解提供了在源代码中嵌入元数据的能力,这些元数据可以被编译器、构建工具或者运行时环境用来处理代码。它们在代码中看起来...

    Java Annotation

    Java Annotation(注解)是自 Java 5.0 开始引入的一种语言元素,它为开发者提供了在代码中添加元数据的能力。简单来说,注解就像是对代码进行标记或注释的方式,这些标记可以在编译时或者运行时被读取并执行特定的...

    Java Annotation(Java 注解)

    如果你想知道java annotation是什么?你可以看看

    java1.5 annotation注释源代码

    Java 1.5 引入了一种新的元编程机制——注解(Annotation),极大地增强了代码的可读性和可维护性。注解是一种在代码中添加元数据的方式,它允许程序员在源代码上添加一些信息,这些信息可以被编译器或运行时环境...

    JDK5.0 Java Annotation 介绍(ppt)

    Java Annotation 是 JDK5.0 引入的一种元数据机制,它允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、构建工具或运行时系统用来执行特定的任务。Annotation 提供了一种安全、灵活的方式来描述代码的属性...

    java annotation demo

    Java 注解(Annotation)是Java语言提供的一种元编程机制,它允许程序员在源代码的各个元素(如类、方法、变量等)上添加信息。这些信息可以被编译器或运行时系统用来验证代码、执行特定操作或者提供额外的运行时...

    Java Annotation手册

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了在编译时或运行时处理代码的一种方式。通过注解,开发者可以向编译器或JVM提供有关代码的附加信息,而这些信息通常不直接影响程序的执行,但可以用于...

    Java.Annotation注解.part4

    Java.Annotation注解.part4

    Java annotation (JDK5)

    Java的`javax.annotation.processing.Processor`接口定义了注解处理器的规范。 5. 使用注解 注解可以应用于类、方法、字段、参数、构造函数、包等不同级别。例如: ```java @MyAnnotation("Hello, World!") ...

    JAVA Annotation学习

    通过上述示例中的JavaAnnotation压缩包,你可能包含了注解的使用示例、源码以及相关的博客文章。源码可以帮助你理解注解的实际应用,而博客文章可能深入解释了注解的工作原理和最佳实践。学习这些材料,将有助于你...

    Java.Annotation注解.part3

    Java.Annotation注解.part3

    Java.Annotation注解.part2

    Java.Annotation注解.part2

    Java.Annotation注解.part1

    Java.Annotation注解.part1

    Java自定义注解Annotation的使用

    ### Java自定义注解Annotation的使用 #### 1. 前言 自从JDK 1.5引入了注解这一特性以来,它已经成为Java开发中的一个重要组成部分。注解最初是为了推动EJB 3.0的普及和发展而设计的,其目的是减少配置文件的使用,...

    java之Annotation及其应用

    Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了强大的支持。元数据是一种描述数据的数据,可以提供有关代码的附加信息,而这些信息并不直接影响代码的执行。在Java中,注解用于向编译器、JVM或...

Global site tag (gtag.js) - Google Analytics