溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java泛型的使用限制實例分析

發(fā)布時間:2021-11-19 16:06:12 來源:億速云 閱讀:114 作者:iii 欄目:編程語言

這篇文章主要講解了“Java泛型的使用限制實例分析”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java泛型的使用限制實例分析”吧!

一 什么情況下不能使用泛型

1 不能使用泛型的形參創(chuàng)建對象。

T o=new T();  // 不允許

2 在泛型類中,不能給靜態(tài)成員變量定義泛型

public class A<T>{  public static T t; //錯誤  public T getA(){ //正確    ......  }}

3 泛型類不能繼承java.lang.Throwable

public class D<T> extends java.lang.Throwable //錯誤

4 泛型類不能初始化一個數(shù)組

T[] b = new T[10]; //錯誤

二 怎樣限制泛型的實例化

泛型類名<T extends 超類>

三 實戰(zhàn)

1 代碼

public class Base<T extends supA> {  T m;  Base( T t ) {    m = t;  }  public T getM() {    return m;  }  public void print() {    System.out.println("base print : " + m);  }  public static void main( String[] args ) {    B bb = new B("test B");    Base<B> base = new Base<B>(bb);//允許    //Base<String> base=new Base<String>("base class is general");//不允許    System.out.println(base.getM());    supA aa = new supA();    Base<supA> base1 = new Base<supA>(aa);    System.out.println(base1.getM());  }}class supA {  public String toString() {    return "supA";  }}class B extends supA {  String b;  public B( String b ) {    this.b = b;  }  public String toString() {    return "subB";  }}

2 運行

subBsupA

3 說明

通過T extends supA將泛型實例化對象限制到必須是supA或supA的子類。

supA可以是接口,但是extends不能換成implements,必須使用extends

感謝各位的閱讀,以上就是“Java泛型的使用限制實例分析”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Java泛型的使用限制實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI