java基礎 03 泛型

2021-08-11 18:36:32 字數 1363 閱讀 9881

一、泛型(generics):

1.所謂泛型:就是變數型別的引數化。

類別定義時的邏輯完全一樣,只是裡面成員變數的型別不同 (如果需要多個相似的類,需要定義多個檔案,不同的只是變數的類別,而邏輯是完全一樣的)

如果使用泛型,只要**在編譯時沒有出現警告,就不會遇到執行時classcastexception (型別轉換異常)

泛型的定義:在類名後面加

代表變數的型別可以是任意的 

可以使用任何的型別來例項化泛型型別中的型別

public class genericfoo

public t getfoo()  }

新建該型別的物件時,若要傳遞的值型別不確定則應這樣建立。

genericfoo<? extends list> ge = null;

ge = new genericfoo();

ge = new genericfoo();

ge 可以指向list的子類

genericfoo<? super list> ge = null;

ge = new genericfoo();

ge 可以指向list的父類

2.for-each迴圈的加入簡化了集合的遍歷

•其語法如下

for(type element : array)

當遍歷集合或陣列時,如果需要訪問集合或陣列的下標,那麼最好使用舊式的方式來實現迴圈或遍歷,而不要使用增強的for迴圈,因為它丟失了下標資訊。

3.自動裝箱/拆箱大大方便了基本型別資料和它們包裝類的使用。

自動裝箱:基本型別自動轉為包裝類。(int〉〉integer)

自動拆箱:包裝類自動轉為基本型別。(integeer〉〉int)

4。可變引數:

可變引數本質上就是乙個陣列,對於某個宣告了可變引數的方法來說,我們既可以傳遞離散的值,也可以傳遞陣列物件。但如果將方法中的引數定義為陣列,那麼只能傳遞陣列物件而不能傳遞離散的值。

可變引數必須要作為方法引數的最後乙個引數,即乙個方法不可能具有兩個或兩個以上的可變引數。

5.列舉(enum):

定義乙個列舉型別:

public enum color

使用:color mycolor = color.red;

每個列舉的成員其實就是您定義的列舉型別的乙個例項(instance)。換句話說,當定義了乙個列舉型別後,在編譯時刻就能確定該列舉型別有幾個例項,分別是什麼。在執行期間我們無法再使用該列舉型別建立新的例項了,這些例項在編譯期間就已經完全確定下來了。

6.靜態匯入:import static

參考 更多泛型知識

深度泛型

java基礎 泛型

int 定義了乙個陣列,陣列元素的型別是int 泛型 定義了乙個集合,集合元素的型別就是泛型定義的型別 泛型 將執行時期出現的問題classcastexception,轉移到了編譯時期 方便與程式設計師解決問題,讓執行事情問題減少,安全。泛型格式 通過 來定義要引用的資料型別 使用泛型 在集合框架中...

Java基礎 泛型 泛型介面 泛型類 泛型方法

一 二 三 泛型方法 1.public t test t t1,t t2 一 泛型 1.泛型產生的背景 原因1 集合中儲存資料時,編譯期間可以儲存任何型別的資料,導致取值時轉換出錯 原因2 每次取值都需要強制轉換,冗餘繁瑣 2.泛型的定義 泛型的本質是乙個引數化的型別 在程式編碼中一些包含引數的類 ...

java基礎 泛型解析

泛型,編寫的 可以被很多不同型別的物件重用。簡單泛型類的定義 public class generic public generic t info public void setinfo t info public t getinfo private t info 用具體的型別替換型別變數 t 就可...