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 自定义注解的主要内容,如果未能解决你的问题,请参考以下文章