一(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源碼基本看不到這玩意。