@Target(value = {ElementType.TYPE,ElementType.METHOD})
//注解能运用在哪 (注解的使用范围)
TYPE :注解在类(包括接口和枚举类型)中能使用
METHOD :在方法中能使用
FIELD : 在域中使用
PACKAGE : 在包中使用
在 PARAMETER 等等
@Retention(RetentionPolicy.SOURCE)
//注解在哪有效(在什么级别保存注解信息) RUNTIME > CLASS > SOURCE
@Documented
//是否生成在javadoc文档
@Inherited
//子类是否可以继承注解
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method;
@ano1("aa")
public class annotionTest {
//@ano2("aa") Error!! 只有一个变量名不为value的变量时不加变量名会报错
void test1() {}
}
@Target(value = {ElementType.TYPE,ElementType.METHOD}) //注解能运用在哪 (注解的使用范围)
@Retention(RetentionPolicy.SOURCE) //注解在哪有效(在什么级别保存注解信息) RUNTIME > CLASS > SOURCE
@Documented //是否生成在javadoc文档
@Inherited //子类是否可以继承注解
@interface ano1{
//变量后面都要加 ();
String value() ; //value适用于只有一个变量的时候,用于省略变量名
}
@Target(value = {ElementType.TYPE,ElementType.METHOD}) //注解能运用在哪 (注解的使用范围)
@Retention(RetentionPolicy.SOURCE) //注解在哪有效(在什么级别保存注解信息) RUNTIME > CLASS > SOURCE
@Documented //是否生成在javadoc文档
@Inherited //子类是否可以继承注解
@interface ano2{
String name() ;
}