您的位置:首页 > 移动开发 > Android开发

注解(增加类类型注解属性测试)

2011-09-19 17:52 204 查看
//自定义注解

package annotationTest;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)//设置自定义注解的生存周期

@Target({ElementType.METHOD,ElementType.TYPE})//设置自定义注解的应用范围(ElementType.TYEP为应用到类)

public @interface MyAnnotation {

String color() default "red";//具有默认值的注解值

String value();//默认注解值

int[] arrayAttr();

MetaAnnotation annotationAttr() default @MetaAnnotation("原注解");//注解中的注解

Class myclass() default String.class;//类类型的属性

}

//自定义注解(用于在另外一个注解中用)

package annotationTest;

public @interface MetaAnnotation {

String value();

}

 

//测试自定义注解的测试类

//另外又增加了类类型的注解属性

package annotationTest;

import java.util.Arrays;

@MyAnnotation(color="blue",value="value" ,arrayAttr={1,2},myclass=Integer.class)

public class MyAnnotationTest {

public static void main(String[] args) {

 if(MyAnnotationTest.class.isAnnotationPresent(MyAnnotation.class)){

 MyAnnotation myAnnotation=(MyAnnotation)MyAnnotationTest.class.getAnnotation(MyAnnotation.class);

 System.out.println(myAnnotation.color());

 System.out.println(myAnnotation.value());

 System.out.println(Arrays.toString(myAnnotation.arrayAttr()));

 System.out.println(myAnnotation.annotationAttr().value());

 System.out.println(myAnnotation.myclass().getName());//类类型的注解

 }

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息