码迷,mamicode.com
首页 > 编程语言 > 详细

java 自定义注解

时间:2015-07-21 14:11:24      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

一.自定义注解类

   Target 限制注解的使用范围  

  TYPE,
  //用于类,接口,枚举但不能是注解
  FIELD,
  //字段上,包括枚举值
  METHOD,
  //方法,不包括构造方法
  PARAMETER,
  //方法的参数
  CONSTRUCTOR,
  //构造方法
  LOCAL_VARIABLE,
  //本地变量或catch语句
  ANNOTATION_TYPE,
  //注解类型(无数据)PACKAGE//Java包

 

 

  

Retention 处理策略

  SOURCE,
  //此类型会被编译器丢弃
  CLASS,
  //此类型注解会保留在class文件中,但JVM会忽略它
  RUNTIME
  //此类型注解会保留在class文件中,JVM会读取它
 
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Name {

    String value() default "苹果";
    
}

 

二.使用注解

public class AnnottionTest {

    
    @Name("香蕉")
    private String name ;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    } 
    
}

 

三.注解处理类

public class Util {

     public static void getInfo(Class<?> clazz){
            String strName=" 名称:";
            
            Field[] fields = clazz.getDeclaredFields();
            for(Field field :fields){
                if(field.isAnnotationPresent(Name.class)){
                   Name name = (Name) field.getAnnotation(Name.class);
                    strName=strName+name.value();
                    System.out.println(strName);
                }
            }
        }
     
     
     @Test
     public void fun(){
         Util.getInfo(AnnottionTest.class);
     }
}

 

java 自定义注解

标签:

原文地址:http://www.cnblogs.com/anye-key/p/4664020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!