當前位置: 首頁 > 新聞資(zī)訊 > java開(kāi)發技術入門—java泛型之泛型擦除

java開(kāi)發技術入門—java泛型之泛型擦除

發布時間:2024-02-20 0:46:31

  1. 如何在運行時獲取泛型的類型
  2. C#泛型函數獲取T類型名稱
  3. Java泛型<? extends T>和<? super T>

一(yī)、如何在運行時獲取泛型的類型

java 的泛型在jdk1.5 以後添加 在運行時采用的是擦除的機制 也就是說泛型隻在編譯器才進行檢查 運行時會向上線進行擦除 如果沒有指定上線的話(huà)就會擦除爲object 所以你取不到

二、C#泛型函數獲取T類型名稱

///<summary>

///獲取類型名稱

///</summary>

publicvoidgetclassname<t>()

{

//打印結果:classname

console.writeline(typeof(t).name);

}

///<summary>

///獲取類型完全名稱

///</summary>

publicvoidgetclassallname<t>()

{

//打印結果:namespace.classname

console.writeline(typeof(t).tostring());

}

三、Java泛型<? extends T>和<? super T>

就效果來說和直接<t>其實效果一(yī)樣,因爲java有多态自帶子類轉父類的強制轉換,- -不過那樣會有一(yī)個強制轉換的過程。其實用泛型通配符就是存儲的時候起到約束和提高性能的作用。平時除了bat大(dà)廠代碼和java源碼基本看不到這玩意。

Top