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。掌握泛型參數、通配符及集合應用,可有效提升代碼質量。

閱讀全文