Java基礎之泛型

來源:互聯網
上載者:User

標籤:

泛型,寬泛的資料類型”

可以接受任意類型(類)的資料。


■泛型定義(類和介面)

型別參數必須是一個合法的標識符,習慣上使用單個大寫字母,通常情況下,K 表示鍵,V 表示值,E 表示異常或錯誤,T 表示一般意義上的資料類型。

例:class Point<TX, TY>


■泛型變數

泛型類在執行個體化時必須指出具體的類型,也就是向型別參數。

例:

TX x;

TX y;


■泛型執行個體化

Point<Integer, Integer> p = new Point<Integer, Integer>();

類型擦除

Point p = new Point();


■泛型方法

class UTest {

    public <TX, TY> TX print(TX x, TY y)


public class Point<TX, TY> {

    public TX print(TX x, TY y) {


■泛型繼承

public <TSB extends T1> T getMax(T array[]){


■泛型萬用字元(?)

為了避免類型擦除,可以使用萬用字元(?):

public void print(Point<?, ?> p) {

? extends T 表示泛型的型別參數只能是 T 及其子類,這與定義泛型類或泛型方法時泛型繼承類似。

使用萬用字元(?)不但可以限制類型的上限,還可以限制下限。限制下限使用 super 關鍵字,例如 <? super TSB> 表示只能接受 TSB 及其父類。


Java基礎之泛型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.