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

java簡明例舉講解泛型

 更新時間:2022年04月27日 09:18:07   作者:羨羨ˇ  
這篇文章主要介紹了Java的泛型,針對利用繼承來實現(xiàn)通用程序設(shè)計所產(chǎn)生的問題,泛型提供了更好的解決方案,需要的朋友可以參考一下

什么是泛型

       早期的Object類型可以接收任意的對象類型,但是在實際的使用中, 會有類型轉(zhuǎn)換的問題。也就存在這隱患,所以Java提供了泛型來解決這個安全問題

      泛型,即“參數(shù)化類型”。一提到參數(shù),最熟悉的就是定義方法時有形參,然后調(diào)用此方法時傳

遞實參。就是說 , 我們可以將類型向參數(shù)一樣傳遞過去  

//一個泛型類
//T可以為任意字符,如A,a,B等都可以
public class Demo1<T> { 
    private T num;
    public Demo1() {}
    public Demo1(T num) {
        this.num = num;
    }
    public void setNum(T num) {
        this.num = num;
    }
    public static void main(String[] args) {
        Demo1<Integer> demo1 = new Demo1<>(101);
    }
}

      如上 , 實際傳入時需指明傳入的實際類型 , 此處為Integer(泛型不能為int等基本類型,只能為引用類型) , 如果不指明則默認(rèn)為object型

      當(dāng)然也可以定義多個泛型

public class Demo1<T,A> { } 

泛型類與接口派生子類

       此處我們定義一個Demo2類繼承上面的Demo1 類

可以看到 ,這樣顯然是不行的 , 那么此處有兩種解決辦法

1. 指明父類泛型的具體類型 ,如 : 

public class Demo2 extends Demo1<Integer>{
}

2. 子類也是泛型類, 如 :

public class Demo2<T> extends Demo1<T>{
}

子類也是泛型類,子類和父類的泛型類型要一致

子類不是泛型類,父類要明確泛型的數(shù)據(jù)類型

泛型接口與泛型類的定義及使用基本相同。

泛型通配符

相信很多人都見過這種寫法

 ? 是什么意思呢  , 接著我們來解釋

 ? 代表類型通配符 , 代表傳入實參時 , 可以傳入為任意類型 

例如, 上述demo1 中 new對象也可以這樣寫 

Demo1<?> demo1 = new Demo1<>(101);

       ? 只能代表傳入的具體實參 , 類上面的是形參,所以?只能具體傳入時使用, ? 表示實際傳入的參數(shù)類型可以是任意的

類型通配符上限 :

 類/接口<?extends 實參類型>

// ? extends Number
public static void method(Demo1<? extends Number> demo1){
}
public static void main(String[] args) {
   method(new Demo1<Integer>());
}

       如上 , 我們在method() 中傳入的參數(shù)是上述定義的Demo1類類型 ,  ? extends Number的意思就是說我們實際傳入的類型上限是 Number , 也就是說, 只有Number 和 Number的子類(此處傳入為Integer , Number是Integer的父類)被實際傳入才是合法的

類型通配符下限 :

類/ 接口 < ? super 實參類型 >    

了解了上限 , 那么下限這里也就不難理解了 , 就是傳入的必須是 自己或者自己的父類

public static void method1(Demo1<? super Number> demo1){
}
public static void main(String[] args) {
    method1(new Demo1<Object>());
}

此處必須傳入Number 或者 Number的父類 (此處傳入為Object類)

類型擦除

        泛型是Java 1.5版本才引進的概念,在這之前是沒有泛型的,但是,泛型代碼能夠很 好地和之前版本的代碼兼容。那是因為,泛到信息只存在于代碼編譯階段,在進入JVM之前,與泛型相關(guān)的信息會被擦除掉,我們稱之為一類型擦除. 泛型類被類型擦除后,相應(yīng)的類型就被替換成 Object 類型或者上限類型.

       就是說 , 泛型只存在于編譯期期間 , 真正執(zhí)行代碼的時候 , 是沒有泛型這個概念的, 它只是在編譯期對我們傳入的類型做了約束

到此這篇關(guān)于java簡明例舉講解泛型的文章就介紹到這了,更多相關(guān)java泛型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實現(xiàn)RedisTemplate操作哈希數(shù)據(jù)

    java實現(xiàn)RedisTemplate操作哈希數(shù)據(jù)

    RedisTemplate是Spring Data Redis提供的一個用于操作Redis的模板類,本文主要介紹了java實現(xiàn)RedisTemplate操作哈希數(shù)據(jù),具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • Spring源碼解析之Bean的生命周期

    Spring源碼解析之Bean的生命周期

    今天給大家?guī)淼氖顷P(guān)于Java源碼的相關(guān)知識,文章圍繞著Bean的生命周期展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 一文詳解Java中的原子操作

    一文詳解Java中的原子操作

    在Java中,原子操作尤為重要,尤其是在多線程環(huán)境中,想象一下,如果小黑在操作一個共享變量時,這個操作被其他線程打斷,那會發(fā)生什么?可能會導(dǎo)致數(shù)據(jù)不一致,或者更糟糕的情況,本文將給大家詳細介紹一下Java中的原子操作
    2024-01-01
  • Maven 打包項目到私服 (deploy)的配置方法

    Maven 打包項目到私服 (deploy)的配置方法

    這篇文章主要介紹了Maven 打包項目到私服 (deploy)的配置方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • java語言描述Redis分布式鎖的正確實現(xiàn)方式

    java語言描述Redis分布式鎖的正確實現(xiàn)方式

    這篇文章主要介紹了java語言描述Redis分布式鎖的正確實現(xiàn)方式,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • 超細講解Java調(diào)用python文件的幾種方式

    超細講解Java調(diào)用python文件的幾種方式

    有時候我們在寫java的時候需要調(diào)用python文件,下面這篇文章主要給大家介紹了關(guān)于Java調(diào)用python文件的幾種方式,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Spring測試基本的控制器實戰(zhàn)示例

    Spring測試基本的控制器實戰(zhàn)示例

    這篇文章主要為大家介紹了Spring測試基本的控制器實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Java實現(xiàn)優(yōu)雅停止線程的有效方法詳解

    Java實現(xiàn)優(yōu)雅停止線程的有效方法詳解

    這篇文章主要為大家詳細如何安全有效停止 Java 線程的,確保多線程應(yīng)用程序平穩(wěn)運行并實現(xiàn)最佳資源管理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • mybatis分割字符串并循環(huán),實現(xiàn)in多個參數(shù)的操作

    mybatis分割字符串并循環(huán),實現(xiàn)in多個參數(shù)的操作

    這篇文章主要介紹了mybatis分割字符串并循環(huán),實現(xiàn)in多個參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • struts中動態(tài)方法調(diào)用使用通配符

    struts中動態(tài)方法調(diào)用使用通配符

    這篇文章主要介紹了struts中動態(tài)方法調(diào)用使用通配符的相關(guān)資料,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09

最新評論

昌邑市| 满洲里市| 宁河县| 乌苏市| 长阳| 黄冈市| 乌兰察布市| 云龙县| 桃园市| 宝山区| 尼玛县| 淳安县| 民权县| 论坛| 奉化市| 辉县市| 封开县| 通渭县| 泸州市| 沾益县| 大竹县| 百色市| 黔江区| 涟源市| 许昌市| 桂阳县| 仙桃市| 东丰县| 新疆| 舞钢市| 安庆市| 根河市| 海原县| 忻城县| 芮城县| 富川| 新龙县| 大石桥市| 涞源县| 庆云县| 琼中|