【Java】注解
对于”アノテーション”的定义是什么?
@interface を付けるとアノテーションとしての定義となる。
注释的参数定义
- アノテーションを使用する際のパラメタの宣言
public @interface TestAnnotation {
String param1();
String param2() default "defaultValue";
}
@TestAnnotation (param1="30", param2="100")
public UserAnnotation() {}
参考标注
- リフレクションを使用して参照する。
Class<?> c = UserAnnotation.class;
for (Annotation a : c.getDeclaredAnnotations()) {
System.out.println(a);
}
@com.example.demo.com.annotation.TestAnnotation(param2=100, param1=30)
元数据注释
@Documented
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation{}
-
- アノテーションに対して付けられるアノテーションのこと。
-
- そのうち、java側で用意されているのを標準メタアノテーションという。
- ex. Documented, Target, Retention, Ingerited
被记录在案
- Javadoc中にアノテーションの説明を記載するかどうか。
@目标
- アノテーションの配置する場所を定義する。
種類説明TYPEクラス・インタフェース・enum・アノテーションFIELDフィールドMETHODメソッドANNOTATION_TYPEアノテーション型の宣言
@保留
- アノテーションの情報がどの段階まで使用されるか。
種類説明SOURCEソース上のみ保持、クラスファイル作成時に削除される。CLASSクラスファイルでも保持できるがアプリケーション実行時には参照できない。RUNTIMEアプリケーション実行時でも使用可能。
リフレクションでアノテーションを参照するならこれが必要。
リフレクションでアノテーションを参照するならこれが必要。
@继承
- クラスを宣言したサブクラスにもアノテーションの情報を付与する。
请参考以下网站
@Documented的行为
https://qiita.com/opengl-8080/items/1cc996d9e8bb5c811567
@元注释是什么?
https://www.techscore.com/tech/Java/JavaSE/JavaLanguage/7-3/