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

SpringBoot中的@Inherited注解詳解

 更新時間:2023年08月26日 11:37:38   作者:sunnyday0426  
這篇文章主要介紹了SpringBoot中的@Inherited注解詳解,@Inherited是一個標(biāo)識,用來修飾注解,如果一個類用上了@Inherited修飾的注解,那么其子類也會繼承這個注解,需要的朋友可以參考下

1. @Inherited

作用:

一個標(biāo)識,用來修飾注解,如果一個類用上了 @Inherited修飾 的注解,那么其子類也會繼承這個注解

注意:

  • 接口用上個 @Inherited 修飾的注解,其實現(xiàn)類不會繼承這個注解
  • 父類的方法用了@Inherited修飾的注解,子類也不會繼承這個注解
  • 當(dāng)用了 @Inherited 修飾的注解的 @Retention 是 RetentionPolicy.RUNTIME ,則增強了繼承性,在反射中可以獲取得到

2. 代碼演示

2.1 創(chuàng)建注解

AAnnotate

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface AAnnotate {
    public String name() default "";
}

BAnnotate

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface BAnnotate {
    public String name() default "";
}

2.2 創(chuàng)建父類子類

創(chuàng)建父類SuperClass

@AAnnotate
public class SuperClass {
    private int SuperClassx;
    public int SuperClassy;
    public SuperClass() {
    }
    //私有
    private int SuperClassX(){
        return 0;
    }
    //公有
    public int SuperClassY(){
        return 0;
    }
}

創(chuàng)建子類Subclass

@BAnnotate
public class Subclass extends SuperClass {
    private int Subclassx;
    public int Subclassy;
    private Subclass() {
    }
    public Subclass(int i) {
    }
    //私有
    private int SubclassX() {
        return 0;
    }
    //公有
    public int SubclassY() {
        return 0;
    }
}

2.3 測試

class TestMain {
    public static void main(String[] args) { 
    	Class<Subclass> clazz = Subclass.class;
    	System.out.println("============================AnnotatedElement===========================");
	//獲取自身和父親的注解。如果@AAnnotate未加@Inherited修飾,則獲取的只是自身的注解而無法獲取父親的注解。
        System.out.println(Arrays.toString(clazz.getAnnotations()));   
        System.out.println("------------------");
    }
}

3. 反射

以下是對反射的拓展,與本文無關(guān)

class TestMain {
    public static void main(String[] args) {
        Class<Subclass> clazz = Subclass.class;
        System.out.println("============================Field===========================");
        // 自身和父親的公有字段
        System.out.println(Arrays.toString(clazz.getFields())); 
        System.out.println("------------------");
        //自身所有字段
        System.out.println(Arrays.toString(clazz.getDeclaredFields()));  
        System.out.println("============================Method===========================");
        //自身和父親的公有方法
        System.out.println(Arrays.toString(clazz.getMethods()));   
        System.out.println("------------------");
        // 自身所有方法
        System.out.println(Arrays.toString(clazz.getDeclaredMethods()));
        System.out.println("============================Constructor===========================");
        //自身公有的構(gòu)造方法
        System.out.println(Arrays.toString(clazz.getConstructors()));   
        System.out.println("------------------");
        //自身的所有構(gòu)造方法
        System.out.println(Arrays.toString(clazz.getDeclaredConstructors()));   
        System.out.println("============================AnnotatedElement===========================");
        //獲取自身和父親的注解
        System.out.println(Arrays.toString(clazz.getAnnotations()));    
        System.out.println("------------------");
        //只獲取自身的注解
        System.out.println(Arrays.toString(clazz.getDeclaredAnnotations()));  
        System.out.println("------------------");
    }
}

到此這篇關(guān)于SpringBoot中的@Inherited注解詳解的文章就介紹到這了,更多相關(guān)@Inherited注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Springboot中Aspect切面的實現(xiàn)方式(以記錄日志為例)

    Springboot中Aspect切面的實現(xiàn)方式(以記錄日志為例)

    這篇文章主要介紹了Springboot中Aspect切面的實現(xiàn)方式(以記錄日志為例),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 詳細(xì)解讀Druid數(shù)據(jù)庫連接池的使用

    詳細(xì)解讀Druid數(shù)據(jù)庫連接池的使用

    這篇文章主要介紹了Druid數(shù)據(jù)庫連接池的使用,數(shù)據(jù)庫連接池負(fù)責(zé)分配、管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用程序重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫連接,而不是重新建立一個,需要的朋友可以參考下
    2023-03-03
  • SpringBoot集成minio實現(xiàn)文件上傳和刪除功能

    SpringBoot集成minio實現(xiàn)文件上傳和刪除功能

    這篇文章主要介紹了SpringBoot集成minio實現(xiàn)文件上傳和刪除功能,詳細(xì)介紹每個功能的實現(xiàn)步驟和代碼示例,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Maven多模塊及version修改的實現(xiàn)方法

    Maven多模塊及version修改的實現(xiàn)方法

    這篇文章主要介紹了Maven多模塊及version修改的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Java編程實現(xiàn)漢字按字母順序排序的方法示例

    Java編程實現(xiàn)漢字按字母順序排序的方法示例

    這篇文章主要介紹了Java編程實現(xiàn)漢字按字母順序排序的方法,結(jié)合具體實例形式分析了java編碼轉(zhuǎn)換及字母排序相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • SpringBoot對Filter過濾器中的異常進行全局處理方案詳解

    SpringBoot對Filter過濾器中的異常進行全局處理方案詳解

    這篇文章主要介紹了SpringBoot對Filter過濾器中的異常進行全局處理,在SpringBoot中我們通過 @ControllerAdvice 注解和 @ExceptionHandler注解注冊了全局異常處理器,需要的朋友可以參考下
    2023-09-09
  • 學(xué)生視角看Java 面向?qū)ο蟮睦^承本質(zhì)

    學(xué)生視角看Java 面向?qū)ο蟮睦^承本質(zhì)

    繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因為它允許創(chuàng)建分等級層次的類。繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為
    2022-03-03
  • 高并發(fā)計數(shù)器LongAdder 實現(xiàn)原理與使用場景詳解

    高并發(fā)計數(shù)器LongAdder 實現(xiàn)原理與使用場景詳解

    這篇文章主要介紹了高并發(fā)計數(shù)器LongAdder 實現(xiàn)原理與使用場景詳解,通過理解 LongAdder 的設(shè)計哲學(xué)和實現(xiàn)細(xì)節(jié),開發(fā)者可以在高并發(fā)場景中做出更優(yōu)的技術(shù)選型,在保證線程安全的前提下實現(xiàn) 5-10 倍的性能提升,需要的朋友可以參考下
    2025-06-06
  • POI導(dǎo)出Excel報錯No such file or directory的解決方法

    POI導(dǎo)出Excel報錯No such file or directory的解決方法

    這篇文章主要為大家詳細(xì)介紹了POI導(dǎo)出Excel報錯No such file or directory的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • spring boot注解方式使用redis緩存操作示例

    spring boot注解方式使用redis緩存操作示例

    這篇文章主要介紹了spring boot注解方式使用redis緩存操作,結(jié)合實例形式分析了spring boot注解方式使用redis緩存相關(guān)的依賴庫引入、注解使用及redis緩存相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11

最新評論

宣威市| 兰州市| 海原县| 临颍县| 察雅县| 安溪县| 宕昌县| 泗阳县| 革吉县| 四川省| 什邡市| 依兰县| 万盛区| 张北县| 桃园市| 枝江市| 巨鹿县| 天长市| 新泰市| 富平县| 攀枝花市| 偏关县| 五大连池市| 罗山县| 将乐县| 绥中县| 哈尔滨市| 新郑市| 通许县| 阿拉尔市| 额尔古纳市| 泰来县| 许昌县| 平塘县| 九江市| 赤水市| 疏附县| 沂水县| 咸阳市| 佛坪县| 营山县|