ホームページ > Java > &#&チュートリアル > Javaプロジェクトで@Inheritedメタアノテーションを使用する方法

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

王林
リリース: 2023-05-10 13:34:06
転載
981 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート