@Target 表示我们的注解可以用在哪些地方
@Retention 表示我们的注解在什么地方还有效。
runtime > class > sourcesruntime 在所有地方都有效 class 只在类和源码中有效 sources 只在sources有效 好,下面我们通过一个实例来了解:
//自定义注解
public class Test03 {
// 有了default "" 可以不用有参数、值
@MyAnnotation2(age = 12)
public void test(){}
}
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
//注解的参数:参数类型 + 参数名();
String name() default "";
int age();
String[] schools() default {"北京大学,清华大学"};
}
**@Target**中的**ElementType.TYPE**表示可以使用在类中
**@Target**中的**ElementType.METHOD**表示可以使用在方法中
如若没有定义以上,那文中的**MyAnnotation2**则不可以在类或方法中使用,不然会报错。
**MyAnnotation2**{
要有注解的参数”格式为“:
参数类型 + 参数名();
**没有default则需要赋值,有default则为空**
String name() default ""; //default 默认为空 ” “
int age(); //需要在类中给值
String[] schools() default {"北京大学,清华大学"}; //数组类型,默认值为:"北京大学,清华大学"
}
实例中 int age();没有写default ,所以我们要在类中给他值:
@MyAnnotation2(age = 12)
public void test(){}
版权声明:本文为qq_43311688原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。