溫馨提示×

溫馨提示×

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

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

Java中泛型的使用限制有哪些

發(fā)布時間:2021-03-24 15:39:56 來源:億速云 閱讀:158 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關(guān)Java中泛型的使用限制有哪些,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

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

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 運行

subB
supA

以上就是Java中泛型的使用限制有哪些,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

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

AI