泛型機(jī)制(二)

泛型通配符

實(shí)例代碼

package my.demo;

import java.util.ArrayList;
import java.util.Iterator;

public class mainFunction {
    public static void main(String[] args){
        ArrayList<Integer> list = new ArrayList<>();
        ArrayList<String> list1 = new ArrayList<>();
        list.add(123);
        list.add(456);
        list1.add("abc");
        list1.add("def");
        PrintArray(list);
        PrintArray(list1);
    }

    public  static  void PrintArray(ArrayList<?> list)
    {
        Iterator<?> it = list.iterator();
        while(it.hasNext()) {
            Object obj = it.next();
            System.out.println(obj);
            System.out.println(", ");
        }

    }
}

結(jié)果

4.png

泛型的上下限限定

定義

package my.demo;

import java.util.ArrayList;
import java.util.Collection;

/*
    泛型的上限限定: ? extend E 代表使用的泛型只能是E類(lèi)型的子類(lèi)/本身
    泛型的下限限定: ? super E 代表使用的泛型只能是E類(lèi)型的父類(lèi)/本身
* */
public class GenericDemo1 {
    public static void main(String[] args) {
        Collection<Integer> list1 = new ArrayList<Integer>();
        Collection<String> list2 = new ArrayList<String>();
        Collection<Number> list3 = new ArrayList<Number>();
        Collection<Object> list4 = new ArrayList<Object>();

        GetElement1(list1);
        GetElement1(list2); // String extends Object , String不是Number的子類(lèi)
        GetElement1(list3);
        GetElement1(list4); // Object 不是Number的子類(lèi)

        GetElement2(list1); // Integer extends Numbers,Integer不是Numer的父類(lèi)
        GetElement2(list2); // String 不是Number的父類(lèi)
        GetElement2(list3);
        GetElement2(list4);


    }
    public static void GetElement1(Collection<? extends Number> col){}
    public static void GetElement2(Collection<? super Number> col){}
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們做開(kāi)發(fā)的時(shí)候一直會(huì)強(qiáng)調(diào)數(shù)據(jù)類(lèi)型的概念,在Java中分為基本類(lèi)型和引用數(shù)據(jù)類(lèi)型,其中基本數(shù)據(jù)類(lèi)型有八種,除了類(lèi)以...
    逐夢(mèng)々少年閱讀 1,295評(píng)論 0 7
  • 說(shuō)來(lái)慚愧,雖然平時(shí)經(jīng)常會(huì)使用到一些泛型類(lèi),但是卻一直沒(méi)有深入地去了解過(guò)泛型機(jī)制。今天開(kāi)始學(xué)習(xí)記錄泛型機(jī)制相關(guān)的知識(shí)...
    怡紅快綠閱讀 627評(píng)論 0 1
  • 泛型是Java 1.5引入的新特性。泛型的本質(zhì)是參數(shù)化類(lèi)型,這種參數(shù)類(lèi)型可以用在類(lèi)、變量、接口和方法的創(chuàng)建中,分別...
    何時(shí)不晚閱讀 3,115評(píng)論 0 2
  • 想要學(xué)好java,泛型機(jī)制是一個(gè)必須要掌握的知識(shí)點(diǎn),無(wú)奈很多書(shū)上寫(xiě)的不是很啰嗦,就是概念太多難以理解,因此參考了很...
    愚公要移山閱讀 1,134評(píng)論 0 5
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開(kāi)了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽(tīng)閱讀 10,798評(píng)論 0 11

友情鏈接更多精彩內(nèi)容