日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java基础—泛型

發布時間:2024/4/15 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java基础—泛型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、泛型方法

二、泛型類

三、類型通配符?

四、類型擦除


泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。泛型本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。比如我們要寫一個排序方法,能夠對整型數組、字符串數組甚至其他任何類型的數組進行排序,我們就可以使用?Java?泛型。

一、泛型方法<E>

你可以寫一個泛型方法,該方法在調用時可以接收不同類型的參數。根據傳遞給泛型方法的參數類型,編譯器適當地處理每一個方法調用。

//?泛型方法 printArray public static?<E>?void printArray(?E[] inputArray?)?{for ( E element : inputArray ){ System.out.printf( "%s ", element );} }

泛型的限定:

  • <? extends T>表示該通配符所代表的類型是?T?類型的子類。
  • <? super T>表示該通配符所代表的類型是?T?類型的父類。
  • 二、泛型類<T>

    泛型類的聲明和非泛型類的聲明類似,除了在類名后面添加了類型參數聲明部分。和泛型方法一樣,泛型類的類型參數聲明部分也包含一個或多個類型參數,參數間用逗號隔開。一個泛型參數,也被稱為一個類型變量,是用于指定一個泛型類型名稱的標識符。因為他們接受一個或多個參數,這些類被稱為參數化的類或參數化的類型。

    適用于當一個類型變量用來表達兩個參數之間或者參數與返回值之間的關系時,即統一各類型變量在方法簽名的兩處(參數或返回值)被使用,或者類型變量在方法體代碼中也被使用而不僅僅在簽名的時候使用,這是應該用自定義泛型<T>。泛型方可以調用一些有關類型的方法。比如集合的add方法。

    public class?Box<T>?{private T t;public void add(T t) {this.t = t;}public T get() {return t;} }

    三、類型通配符?

    類型通配符一般是使用?代替具體的類型參數。例如?List<?>?在邏輯上是List<String>,List<Integer>?等所有?List<具體類型實參>的父類。適合用于在整個類中只有一處使用了泛型。使用時注意加了泛型的參數不能調用與參數類型有關的方法。比如打印出任意參數化類型集合中的所有內容,就適合用通配符泛型<?>

    public static void printCollecton(Collection <?> collection){for(Object obj: collection){System.out.println(obj);} }

    泛型三種:

    • ArrayList<T> al=new ArrayList<T>();指定集合元素只能是T類型
    • ArrayList<?> al=new ArrayList<?>();集合元素可以是任意類型,這種沒有意義,一般是方法中,只是為了說明用法
    • ArrayList<? extends E> al=new ArrayList<? extends E>();

    四、類型擦除

    Java?中的泛型基本上都是在編譯器這個層次來實現的。在生成的?Java?字節代碼中是不包含泛型中的類型信息的。使用泛型的時候加上的類型參數,會被編譯器在編譯的時候去掉,這個過程就稱為類型擦除。如在代碼中定義的?List<Object>和?List<String>等類型,在編譯之后都會變成?List。JVM?看到的只是?List,而由泛型附加的類型信息對?JVM?來說是不可見的。類型擦除的基本過程也比較簡單,首先是找到用來替換類型參數的具體類。這個具體類一般是?Object。如果指定了類型參數的上界的話,則使用這個上界。把代碼中的類型參數都替換成具體的類。

    總結

    以上是生活随笔為你收集整理的Java基础—泛型的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。