基礎程式設計(Java)· CH20

泛型類別與方法 — 互動講義

Java 引擎載入中(首次約 30 秒)…
1

型別參數替換(選型別看 T 被換掉)

同一份泛型模板 Box<T>,填不同型別實參,編譯器把 T 替換成具體型別。

泛型模板(一份原始碼)
class Box<T> {
  T value;
  T get() { … }
  void set(T v) { … }
}
T 代入
Box<Integer>(T → Integer)
class Box {
  Integer value;
  Integer get() { … }
  void set(Integer v) { … }
}
2

貼碼試跑

真 Java,瀏覽器內編譯執行。

為線上單檔執行,範例把多個類別放同一檔(教科書是分多個 .java)。瀏覽器無鍵盤,請勿用 Scanner

輸出


  
3

一個泛型方法,取代多個多載

沒泛型時每種型別各寫一版;泛型方法 <T> 一份就涵蓋全部。

沒有泛型:各型別各一版
int max(int, int)
double max(double, double)
String max(String, String)
有泛型:一份有界方法
<T extends Comparable<T>>
T max(T a, T b)