首頁  >  文章  >  Java  >  如何在java專案中使用@Inherited元註解

如何在java專案中使用@Inherited元註解

王林
王林轉載
2023-05-10 13:34:06902瀏覽

1.先看原始碼文件

@已記錄

#@Retention(保留策略。RUNTIME)

@Target(ElementType。註釋類型)

public@interfaceInherited{

}以上程式碼標註部分可以用Google翻譯。大致意思是

指示批註類型的自動繼承。如果在標註類型聲明中有繼承的元標註,使用者在類別聲明上查詢標註類型,而類別聲明沒有這個類型的標註,那麼類別的超類別會自動查詢標註類型。這個過程將重複進行,直到找到這種類型的註解或到達類別層次結構的頂部。如果沒有一個超類別有這種類型的註釋,查詢將會指出這個類別沒有這樣的註釋。

請注意,如果您使用註解類型來註解除類別之外的任何東西,這種元註解類型沒有任何效果。也要注意,這個元註解只會導致從超類別繼承註解;對已實作介面的無效註解。

從上面的描述可以看出,使用這個標註的標註父類別的子類別可以繼承父類別的標註。

2.程式碼測試

2.1擁有@Inherited註解

@Target(ElementType.型別)

@Retention(保留策略。RUNTIME)

##@繼承

public  @ interfaceInheritedTest  {

string  value();

}@InheritedTest('擁有繼承')

publicclassPerson{

publicvoidmethod(){

}

publicvoidmethod2(){

#}

} publicclassstudentextends  person  {

}測試:

publicclassTestInherited{

public  static  void  main(String[]args){SS 。 value());

}

}

}輸出:

##2.2沒有@Inherited註解

@Target(ElementType。類型)

@Retention(保留策略。RUNTIME)

如何在java專案中使用@Inherited元註解public  @ interfacesinotinherited  {

#string  value();

##} @ IsNotInherited('未擁有繼承')

publicclassPerson{

#publicvoidmethod(){

}

publicvoidmethod2(){

}

} publicclassstudentextends  person  {

}測試:

publicclassTestInherited{

public  static  void  main(String[]args){

public  static  void  main(String[]args){

#public  static  void  main(String[]args){

##CLaSS  studentCLaSS=student  . class;

if(StudentClass  . is  notationPresent(iSnotinerIded  .

if(StudentClass  . is  notationPresent(iSnotinerIded  .

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

##Ann#cm. out  .Class .Stuip. )。 value());

}

}

}

#不輸出容差,可見沒有@Inherited標註的類別的子類不會繼承該標註。

以上是如何在java專案中使用@Inherited元註解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除