- 介绍
用过Spring或者Struts的童鞋,肯定都知道Java里有Annotation这个东西,可以写在类、方法以及属性上。本文将介绍有关自定义Annotation的内容。
- 例子
[codesyntax lang="java"]
/**
* Copyright By suren.
* You can get more information from my website:
* http://surenpi.com
*/
package org.suren.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Field;
import java.util.Arrays;
/**
* @author suren
* @date 2015年10月12日 上午10:16:41
*/
@SuRenAnnotation(value = "good")
@SuRenAnnotationA
public class Tester
{
@SuRenAnnotationA
private String name;
/**
* @param args
*/
public static void main(String[] args)
{
System.out.println(Arrays.toString(Tester.class.getAnnotations()));
System.out.println(Arrays.toString(Tester.class.getDeclaredAnnotations()));
for(Field field : Tester.class.getDeclaredFields()){
System.out.println(Arrays.toString(field.getAnnotations()));
}
}
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@interface SuRenAnnotation
{
String value();
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE})
@interface SuRenAnnotationA
{
}
@interface SuRenAnnotationB{
}
[/codesyntax]
从上面的例子中可以看到,如果自定义的Annotation中没有标注@Retention(RetentionPolicy.RUNTIME)的话,是无法通过反射的方法获取到的。
标签:lang,Java,java,annotation,import,注解,ElementType,Annotation From: https://blog.51cto.com/suren/5764424