先來看下這一段**
public
class
test
}}
@test
public
void
test()
泛型擦除,由於虛擬機器中沒有泛型型別的物件。無論定義何種泛型型別,都必須會有乙個原始型別,虛擬機器執行時會將型別變數擦除,並統一用object代替,從此變為乙個普通類物件。
@test
public
void
test()
那帶有泛型的集合為我們做了些什麼。
在新增入集合時,編譯階段進行型別檢查,在取出階段,進行型別轉型。泛型類寫法:class 類名稱《泛型標記》{}
泛型標記:格式通常為大寫形式,且非常簡短的,例如t,s,e,k。
class
test
//內部類若存在相同的泛型名,會進行覆蓋
class
test2
//靜態內部類可使用
static
class
test3
public
static
void
main()
}
泛型類的使用例子:大體就是在使用再規定引數型別,使得類中的方法也一同決定了型別。
class
test
public
void
setp
(t p)
}public
class
test
}
泛型介面:inte***ce 介面名稱《泛型標記》{},使用的方式與泛型一樣。
inte***ce
test
泛型方法寫法:修飾符 < 泛型標記 > 返回值 方法名(引數列表)
< 泛型標記 >的作用:表明在這個方法作用域中誰才是泛型型別引數;
public
void
test
(t p)
萬用字元的存在:
@test
public
void
test1()
這裡我們先想一下,泛型為我們做了什麼,新增資料時編譯階段資料型別檢查,取出資料時資料型別轉換。 java基礎 泛型
int 定義了乙個陣列,陣列元素的型別是int 泛型 定義了乙個集合,集合元素的型別就是泛型定義的型別 泛型 將執行時期出現的問題classcastexception,轉移到了編譯時期 方便與程式設計師解決問題,讓執行事情問題減少,安全。泛型格式 通過 來定義要引用的資料型別 使用泛型 在集合框架中...
Java泛型的理解
t bean classbean class bean 單獨的t代表乙個型別,而class和class代表這個型別所對應的類 class在例項化的時候,t要替換成具體類 class它是個通配泛型,可以代表任何型別 受限統配,表示t的乙個未知子類。下限統配,表示t的乙個未知父類。package com...
Java基礎 泛型 泛型介面 泛型類 泛型方法
一 二 三 泛型方法 1.public t test t t1,t t2 一 泛型 1.泛型產生的背景 原因1 集合中儲存資料時,編譯期間可以儲存任何型別的資料,導致取值時轉換出錯 原因2 每次取值都需要強制轉換,冗餘繁瑣 2.泛型的定義 泛型的本質是乙個引數化的型別 在程式編碼中一些包含引數的類 ...