当时练习的时候直接写在了源代码中了,凑合看吧......
/** * 四个元注解 * @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来给定一个默认值,一般当注解中只有一个参数名称为value; * @return */ //String name1 = "test"; //这种方式也是有用的 String value () default ""; //String[] name() default{}; }
转载于:https://www.cnblogs.com/hgfbk/p/10900333.html