Java 自定义注解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 自定义注解相关的知识,希望对你有一定的参考价值。

  在spring的应用中,经常使用注解进行开发,这样有利于加快开发的速度。

  介绍一下自定义注解:

   首先,自定义注解要新建一个@interface,这个是一个注解的接口,在此接口上有这样几个注解:

      @Documented 标记生成javadoc

      @Retention 注解的生存期,取值有:

取值

描述

SOURCE

在源文件中有效(即源文件保留,领盒饭)。

CLASS

在 class 文件中有效(即 class 保留,领盒饭)。

RUNTIME

在运行时有效(即运行时保留) 

      @Target 标注的目标,取值有

CONSTRUCTOR

用于描述构造器(领盒饭)。

FIELD

用于描述域(领盒饭)。

LOCAL_VARIABLE

用于描述局部变量(领盒饭)。

METHOD

用于描述方法。

PACKAGE

用于描述包(领盒饭)。

PARAMETER

用于描述参数。

TYPE

用于描述类或接口(甚至 enum )。

      @Inherited 标记继承关系

   实例:创建一个作用于类的注解@Person

      1.先创建一个注解类 Person

        

package com.wuyu.annotation;

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

@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Person {
    String name() default "";
    int age() default 0;
}

    2.创建测试类

package com.wuyu.annotation;

@Person(name="test")
public class Test {
    public static void main(String[] args) {
        getPersion(Test.class);
    }
    public static void getPersion(Class<?> c){
        if(c.isAnnotationPresent(Person.class)){
            Person person = c.getAnnotation(Person.class);
            if(person != null){
                System.out.println("name=" + person.name() + ",age=" + person.age());
            }
        }
    }
}

    3.执行结果:

name=test,age=0

 

以上是关于Java 自定义注解的主要内容,如果未能解决你的问题,请参考以下文章

Java自定义注解

java注释的自定义

Java注解教程及自定义注解

Android APT注解处理器 ( 根据注解生成 Java 代码 )

java自定义注解

我爱java系列---自定义注解