📅  最后修改于: 2023-12-03 14:42:17.425000             🧑  作者: Mango
Java 语言中,@Targeted 注释用于指定注释可以被放置在哪种类型的元素上。在使用注释时,通过 @Targeted 注释可以明确使用该注释时需要遵循的规则,在一定程度上增加代码的可维护性和可读性。
@Targeted 注释可以放置在任何一个注释前面,由注释和一个参数组成。参数可以是一个ElementType 枚举类型,也可以是一组 ElementType 枚举类型。
@Target(ElementType.ANNOTATION_TYPE) public @interface MyAnnotation {}
使用注释时需要遵循 @Target 注释所定义的规则,如果在不支持该注释的地方使用该注释,编译器会提示错误,从而提高代码的可维护性。
ElementType 枚举类型是一个枚举类型,代表着注释可以被放置在哪种类型的元素上。
每个注释都必须指定其可以注释的 ElementType 类型,从而限制注释的使用,避免注释被误用。如果一个注释需要同时支持多种 ElementType 类型,可以在注释的 @Targeted 参数中指定多个 ElementType。例如:
@Target({ElementType.TYPE, ElementType.METHOD}) public @interface Loggable {}
上面的注释可以被放置于类或方法上。
用 @Targeted 注释来注释自定义注释时,需要在注释的前面加上 @Targeted 注释表示注释使用的规则。例如:
@Targeted(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String value(); }
上面的注释表示 MyAnnotation 注释只能够被放置于字段上,并且可以在运行时访问 MyAnnotation 注释的值。
如果在不支持 MyAnnotation 注释的地方使用了该注释时,编译器会报错,例如:
@MyAnnotation("test") // 编译时错误,MyAnnotation 不能注释于方法上 public void test() { System.out.println("Test"); }
通过使用 @Targeted 注释,可以有效控制注释的使用范围,避免了注释被误用的情况,提高了代码的可维护性和可读性。
@Targeted 注释用于指定注释可以被放置在哪种类型的元素上,避免注释被误用,提高代码的可维护性和可读性。
使用 @Targeted 注释时,需要遵循注释的 @Targeted 参数所定义的规则,如果在不支持该注释的地方使用该注释,编译器会提示错误。