ホームページ  >  記事  >  Java  >  Javaプロジェクトで@Inheritedメタアノテーションを使用する方法

Javaプロジェクトで@Inheritedメタアノテーションを使用する方法

王林
王林転載
2023-05-10 13:34:06900ブラウズ

1. 最初にソース コード ドキュメントをお読みください

@Recorded

@Retention(Retention Policy. RUNTIME)

@Target(ElementType.コメント タイプ)

public@interfaceInherited{

}上記のコードの注釈は、Google を使用して翻訳できます。大まかな意味は

で、アノテーション型の自動継承を示します。アノテーション型宣言に継承されたメタアノテーションがあり、ユーザーがクラス宣言でアノテーション型をクエリし、クラス宣言にこの型のアノテーションがない場合、クラスのスーパークラスは自動的にアノテーション型をクエリします。 。このプロセスは、このタイプのアノテーションが見つかるか、クラス階層の最上位に到達するまで繰り返されます。どのスーパークラスにもこのタイプの注釈がない場合、クエリはクラスにそのような注釈がないことを示します。

このメタ アノテーション タイプは、クラス以外のものにアノテーションを付けるために使用した場合には効果がないことに注意してください。また、このメタ アノテーションはスーパークラスからアノテーションを継承するだけであり、実装されたインターフェイスでは無効なアノテーションになることにも注意してください。

上記の説明からわかるように、このアノテーションを使用するアノテーションの親クラスのサブクラスは、親クラスのアノテーションを継承することができます。

#2. コード テスト

2.1 には @Inherited アノテーションがあります

@Target(ElementType.Type)

@Retention(保持ポリシー。RUNTIME)

@Inheritance

public @interfaceInheritedTest {

string value();

}@InheritedTest('継承があります')

publicclassperson{

publicvoidmethod(){

}

publicvoidmethod2(){

}

} publicclassstudentextends person {

}テスト:

publicclassTestInherited{

public static void main(String[]args){

CLaSS StudentCLaSS=student . class;

if(student class . is notationpresent(inherited test . class)){

system . out . println(StudentClass . GetAnnotation(InheritedTest . Class)). value());

}

}

} 出力:

Javaプロジェクトで@Inheritedメタアノテーションを使用する方法

2.2 @Inherited アノテーションなし

@Target(ElementType.Type)

@Retention(Retention Policy.RUNTIME)

public @interfacesinotinherited {

string value();

} @ IsNotInherited('所有されていない継承')

publicclassperson{

publicvoidmethod(){

}

publicvoidmethod2(){

}

} publicclassstudentextends person {

}テスト:

publicclassTestInherited{

public static void main(String[]args){

CLaSS StudentCLaSS=student . class;

if(StudentClass . is notationPresent(iSnotinerIded . Class)){

system . out . println(StudentClass . GetAnnotation(iSNOTiHerided . class) )。 value());

}

}

}

Javaプロジェクトで@Inheritedメタアノテーションを使用する方法

@Inherited アノテーションのない許容誤差、表示されるサブクラスを出力しません。このアノテーションは出力されません。受け継がれる。

以上がJavaプロジェクトで@Inheritedメタアノテーションを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。