自定义Annotion(注解)
当时练习的时候直接写在了代码中了,凑合看吧......
注解本身并没有什么用,只有在解析时才有用,有的注解可以被反射读取到,所以注解也就只能去标记一些可能被读到的东西,然后根据注解做出相应的处理
/**
* 四个元注解
* @Target 用于描述注解的使用范围,当多个值同时存在的时候也就意味着,使用的范围更多
* value=
* ElementType.TYPE 意味着这个注解只能定义在类,接口,枚举上
* ElementType.PACKAGE 意味着这个注解只能用于修饰包
* ElementType.CONSTRUCTOR 意味着这个注解用于描述构造器(构造犯法)
* ElementType.FIELD 意味着这个注解用于描述域
* ElementType.METHOD 意味着这个注解只能定义在方法上
* ElementType.LOCAL_VARLIABLE 意味着这个注解用于描述局部变量
* ElementType.PARAMETER 意味着这个注解用于描述参数
* @Retention 表示需要在什么级别保存该注释信息,用于描述注解的生命周期(保留策略)
* value =
* RetentionPolicy.RUNTIME 在运行时有效(即运行时保留),Runtime可以被反射机制读取
* RetentionPolicy.SOURCE 在源文件中有效(即源文件保留)
* RetentionPolicy.CLASS 在字节码文件中有效(即class文件,即在class中保留)
* @Documented
* @Inherited
*/
@Target(value={ElementType.METHOD,ElementType.PACKAGE,ElementType.TYPE,ElementType.CONSTRUCTOR})
public @interface MyAnnotion001 {
/**
* 注解的参数,代表这里需要一个String,默认值是"",如果不定义值的话会报错,需要default来给定一个默认值,一般当注解中只有一个参数;
* @return
*/
//String name1 = "test"; //这种方式也是有用的
String value () default "";
//String[] name() default{};
}