0
点赞
收藏
分享

微信扫一扫

Java注解Annotation

笙烛 2022-10-17 阅读 185


  • 介绍

用过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)的话,是无法通过反射的方法获取到的。

举报

相关推荐

0 条评论