Java泛型通配符:上界與下界,簡單理解

Java泛型通配符(`?`)用於統一處理不同類型的泛型集合(如`List<Integer>`、`List<Double>`),避免重複定義方法。通配符分兩種: **上界通配符(`? extends T`)**:元素是`T`的子類或`T`本身。特點是**只能獲取元素**(返回類型爲`T`),不可添加元素(編譯器無法確定具體子類),適用於讀取集合元素(如打印`Number`及其子類集合)。 **下界通配符(`? super T`)**:元素是`T`的父類或`T`本身。特點是**只能添加元素**(`T`或其子類),不可獲取具體類型(只能返回`Object`),適用於添加元素(如往`Number`父類集合中添加子類元素)。 核心區別:上界“只讀”、下界“只寫”,需根據場景選擇,避免過度使用通配符或誤用`T`。

閱讀全文
Java泛型入門:爲什麼用泛型?簡單理解與使用

Java泛型是Java 5引入的參數化類型特性,主要解決無泛型時類型不安全(如集合存儲任意類型導致運行時ClassCastException)和強制轉換繁瑣的問題,實現類型安全與代碼複用。 使用場景包括泛型類(如Box<T>)、接口(如Generator<T>)、方法(如<T> T getFirstElement(T[]))及標準集合(如ArrayList<String>、HashMap<String, Integer>)。通配符`<?>`擴展靈活性,上界通配符`<? extends T>`限制元素爲T或其子類,下界通配符`<? super T>`限制元素爲T或其父類。 核心優勢:編譯時類型檢查保障安全,消除強制轉換,通過參數化類型複用代碼。注意事項:基本類型需用包裝類,泛型不可繼承,類型擦除導致無法直接實例化T。掌握泛型參數、通配符及集合應用,可有效提升代碼質量。

閱讀全文