最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java元注解@Inherited的使用詳解

 更新時間:2019年11月27日 08:30:48   作者:lele  
這篇文章主要介紹了java元注解@Inherited的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.先看源碼文檔

/**
 * Indicates that an annotation type is automatically inherited. If
 * an Inherited meta-annotation is present on an annotation type
 * declaration, and the user queries the annotation type on a class
 * declaration, and the class declaration has no annotation for this type,
 * then the class's superclass will automatically be queried for the
 * annotation type. This process will be repeated until an annotation for this
 * type is found, or the top of the class hierarchy (Object)
 * is reached. If no superclass has an annotation for this type, then
 * the query will indicate that the class in question has no such annotation.
 *
 * <p>Note that this meta-annotation type has no effect if the annotated
 * type is used to annotate anything other than a class. Note also
 * that this meta-annotation only causes annotations to be inherited
 * from superclasses; annotations on implemented interfaces have no
 * effect.
 *
 * @author Joshua Bloch
 * @since 1.5
 * @jls 9.6.3.3 @Inherited
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}

上述代碼注釋部分可以用谷歌翻譯大法大致意思是

表示注釋類型自動繼承。 如果在注釋類型聲明中存在繼承的元注釋,并且用戶在類聲明上查詢注釋類型,并且類聲明沒有此類型的注釋,則該類的超類將自動查詢注釋類型。 將重復(fù)此過程,直到找到此類型的注釋,或者達到類層次結(jié)構(gòu)(Object)的頂部。 如果沒有超類具有此類型的注釋,則查詢將指示所討論的類沒有這樣的注釋。

請注意,如果使用注釋類型來注釋除類之外的任何內(nèi)容,則此元注釋類型不起作用。 還要注意,這個元注釋只會導(dǎo)致從超類繼承注釋; 已實現(xiàn)的接口上的注釋無效。

通過上述描述可知,使用該注解的注解父類的子類可以繼承父類的注解。

2.代碼測試

2.1擁有@Inherited注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface InheritedTest {

  String value();
}
@InheritedTest("擁有Inherited")
public class Person {


  public void method(){
  }


  public void method2(){
  }
}
public class Student extends Person {
}

測試:

public class TestInherited {


  public static void main(String[] args) {
    Class<Student> studentClass = Student.class;
    if (studentClass.isAnnotationPresent(InheritedTest.class)){
      System.out.println(studentClass.getAnnotation(InheritedTest.class).value());
    }


  }
}

輸出:

2.2未擁有@Inherited注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface IsNotInherited {
  String value();
}
@IsNotInherited("未擁有Inherited")
public class Person {


  public void method(){
  }


  public void method2(){
  }
}
public class Student extends Person {
}

測試:

public class TestInherited {


  public static void main(String[] args) {
    Class<Student> studentClass = Student.class;
    if (studentClass.isAnnotationPresent(IsNotInherited.class)){
      System.out.println(studentClass.getAnnotation(IsNotInherited.class).value());
    }


  }
}

沒有輸出任何任容,由此可知未擁有@Inherited注解的注解的類的子類不會被繼承該注解。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pattern.compile函數(shù)提取字符串中指定的字符(推薦)

    Pattern.compile函數(shù)提取字符串中指定的字符(推薦)

    這篇文章主要介紹了Pattern.compile函數(shù)提取字符串中指定的字符,使用的是Java中的Pattern.compile函數(shù)來實現(xiàn)對指定字符串的截取,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Java正則表達式之全量匹配和部分匹配

    Java正則表達式之全量匹配和部分匹配

    正則表達式異常強大,一直理解不深,用的也不深,這次項目中嘗試,體會到了它的強大之處,這篇文章主要給大家介紹了關(guān)于Java正則表達式之全量匹配和部分匹配的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • JPA?使用criteria簡單查詢工具類方式

    JPA?使用criteria簡單查詢工具類方式

    這篇文章主要介紹了JPA?使用criteria簡單查詢工具類方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Maven實現(xiàn)自己的starter依賴

    Maven實現(xiàn)自己的starter依賴

    本文主要介紹了Maven實現(xiàn)自己的starter依賴,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 手寫一個@Valid字段校驗器的示例代碼

    手寫一個@Valid字段校驗器的示例代碼

    這篇文章主要為大家詳細介紹了如何手寫一個@Valid字段校驗器,文中的示例代碼講解詳細,對我們學習有一定幫助,需要的可以參考一下
    2022-07-07
  • java使用swing繪制國際象棋棋盤

    java使用swing繪制國際象棋棋盤

    這篇文章主要為大家詳細介紹了java使用swing繪制國際象棋棋盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Java語言字典序排序算法解析及代碼示例

    Java語言字典序排序算法解析及代碼示例

    這篇文章主要介紹了Java語言字典序排序算法解析及代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 很詳細的Log4j配置步驟

    很詳細的Log4j配置步驟

    Log4J的配置文件(Configuration File)就是用來設(shè)置記錄器的級別、存放器和布局的,它可接key=value格式的設(shè)置或xml格式的設(shè)置信息。通過配置,可以創(chuàng)建出Log4J的運行環(huán)境。
    2008-11-11
  • JAVA函數(shù)的定義、使用方法實例分析

    JAVA函數(shù)的定義、使用方法實例分析

    這篇文章主要介紹了JAVA函數(shù)的定義、使用方法,結(jié)合實例形式分析了JAVA函數(shù)的基本概念、功能、原理、定義、使用方法與操作注意事項,需要的朋友可以參考下
    2020-04-04
  • 淺談spring注解之@profile

    淺談spring注解之@profile

    這篇文章主要介紹了淺談spring注解之@profile,@profile通過配置來改變參數(shù),這里整理的詳細的用法,有興趣的可以了解一下
    2017-10-10

最新評論

南阳市| 三明市| 城市| 梧州市| 札达县| 革吉县| 桦南县| 海盐县| 壤塘县| 合水县| 云龙县| 东城区| 阿克陶县| 崇左市| 南京市| 五河县| 泸溪县| 托克逊县| 周宁县| 桃源县| 惠东县| 柘城县| 大荔县| 徐水县| 甘肃省| 文登市| 阿坝县| 新津县| 疏勒县| 南城县| 阿瓦提县| 阿鲁科尔沁旗| 江津市| 长子县| 那坡县| 麦盖提县| 南靖县| 仁寿县| 镇安县| 繁峙县| 通河县|