Java注解と反射の原理説明
1つ てんせい心
注解はより大きな役割を果たすには、反射メカニズムの力を借りる必要があります。反射によって,一つの方法で宣言された注釈のすべての内容が得られます。
普通は二つの要求があります。
1 メソッド中のすべてのコメントを取得し、get Annotationsを呼び出すことで実現します。
2 操作が指定された注釈かどうかを判断し、get Annotationを呼び出すことにより実現される。
以下はソースの角度からこれらの注釈情報をどうやって取得するかを説明します。
第二のソースコードの読み取り-メソッドのすべてのコメントを取得します。
以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。
注解はより大きな役割を果たすには、反射メカニズムの力を借りる必要があります。反射によって,一つの方法で宣言された注釈のすべての内容が得られます。
普通は二つの要求があります。
1 メソッド中のすべてのコメントを取得し、get Annotationsを呼び出すことで実現します。
2 操作が指定された注釈かどうかを判断し、get Annotationを呼び出すことにより実現される。
以下はソースの角度からこれらの注釈情報をどうやって取得するかを説明します。
第二のソースコードの読み取り-メソッドのすべてのコメントを取得します。
public class AccessibleObject implements AnnotatedElement {
...
// Annotation
public Annotation[] getAnnotations() {
return getDeclaredAnnotations();
}
...
}
public final class Method extends Executable {
...
public Annotation[] getDeclaredAnnotations() {
// Method , getDeclaredAnnotations
return super.getDeclaredAnnotations();
}
...
}
//Method Executable getDeclaredAnnotations
public abstract class Executable extends AccessibleObject
implements Member, GenericDeclaration {
...
public Annotation[] getDeclaredAnnotations() {
return AnnotationParser.toArray(declaredAnnotations());
}
...
}
第三のソースコードの読み取り-操作が指定されているかどうかを判断します。
public final class Method extends Executable {
...
//// Annotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
return super.getAnnotation(annotationClass);
}
...
}
public abstract class Executable extends AccessibleObject
implements Member, GenericDeclaration {
...
public <T extends Annotation> T getAnnotation(Class<T> annotationClass) {
Objects.requireNonNull(annotationClass);
//
return annotationClass.cast(declaredAnnotations().get(annotationClass));
}
...
}
締め括りをつける以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。もっと知りたいなら、下のリンクを見てください。