国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

泛型

2018-05-03 13:57 更新

筆者能力有限,總結有誤的地方,請讀者協(xié)作更正。

1.Java中的泛型是什么?使用泛型的好處?

在集合中存儲對象,并在使用前進行類型轉換很不方便;java1.5開始提供了泛型。 作用:在編譯期進行類型轉換,把正確的類型對象放在入集合中,避免出現(xiàn)類型轉換異常。

2.泛型是如何工作的?什么是類型擦除?

泛型是通過類型擦除來實現(xiàn)的,編譯器在編譯的時候會擦除所有類型的相關信息,所有在運行的時候不存在任何類型轉換。例如:定義兩個數(shù)組,Arraylist<String>,ArrayList<Integer>,我們用getClass()獲取類的信息,返回結果都為true,說明類型在編譯的時候被擦除。

為什么泛型用類型擦除來實現(xiàn)? 因為泛型能保證,我們只需要定義一次類,就可以被任何數(shù)據(jù)類型使用,而不是一種數(shù)據(jù)類型定義一個類; 泛型只能保存我們使用的數(shù)據(jù)類型,而不是一堆的Object;

3.什么是泛型中的限定通配符?和非限定通配符?

限定通配符對類進行限制:

4.如何編寫一個泛型方法,讓它能接受泛型參數(shù)并返回泛型類型?

使用T, E or K,V等被廣泛認可的類型占位符;最簡單的情況下,一個泛型方法可能會像這樣:

5.你可以把List<String>傳遞給一個接受List<Object>參數(shù)的方法嗎?

String是一種Object,看起來可以傳遞,實際不可以;因為List<String>是自定義泛型的,只能用來存儲String; List<Object>可以用來存儲所有數(shù)據(jù)類型。

6.Array可以用泛型么?

Array事實上并不支持泛型; Java一書中建議使用List來代替Array,因為List可以提供編譯期的類型安全保證,而Array卻不能。

7.如何阻止java中的“類型檢查”錯誤?

原因:把泛型和原始數(shù)據(jù)類型混合使用,編譯時會出現(xiàn)該錯誤。例如: List<String> rawList = new ArrayList()

8.是否可以使用Object代替通配符“?”使用?

List<?>?是一個未知類型的List,而List<Object> 其實是任意類型的List。 可以把List<String>, List<Integer>賦值給List<?>, 卻不能把List<String>賦值給 List<Object>。? ? ?

9.Java中List<Object>和原始類型的List的區(qū)別?

在編譯時編譯器不會對原始類型進行類型安全檢查,卻會對帶參數(shù)的類型進行檢查,通過使用Object作為類型,可以告知編譯器該方法可以接受任何類型的對象,比如String或Integer。

原始類型List可以存任何數(shù)據(jù)類型,但卻不能把List<String>傳遞給接受 List<Object>的方法,即指定泛型的List不能傳給Object; 因為會產生編譯錯誤。

10.List<String>和原始類型List之間的區(qū)別?

帶參數(shù)類型是類型安全的,由編譯器保證的,但原始類型List卻不是類型安全 的。 原始類型List可以存任何數(shù)據(jù)類型,List<String>只能存String類型

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號