Java中List<?>和List<Object>區(qū)別小結(jié)
List<?>和 List<Object> 是兩種在 Java 中用于表示泛型集合的方式,但它們有不同的含義和用法。下面是這兩者之間的區(qū)別:
1. List<?>
List<?> 是通配符類型(Wildcard Type)的一種表示方式。`?` 表示可以是任何類型,但無法對其進行操作,例如獲取或設(shè)置元素的類型。
特點:
`List<?>` 表示一個類型未知的 `List`,其中元素的類型可以是任意的(例如 `List<Integer>`、`List<String>` 等)。
- 只能從 `List<?>` 中讀取元素,但無法向其中添加元素(除了 `null`)。
import java.util.List; import java.util.ArrayList; public class WildcardExample { public static void main(String[] args) { List<?> list1 = new ArrayList<String>(); // 可以是任意類型的 List List<?> list2 = new ArrayList<Integer>(); // 你可以讀取元素,但不能添加非 null 的元素 Object obj = list1.get(0); // 獲取元素,返回類型為 Object // 以下行會報錯,因為不能向 List<?> 中添加元素 // list1.add("Hello"); // 編譯錯誤 // list1.add(10); // 編譯錯誤 } }
2. List<Object>
`List<Object>` 是一個具體的類型參數(shù),它表示一個可以包含任意類型的對象的 `List`。由于所有 Java 類(包括自定義類)都繼承自 `Object`,所以 `List<Object>` 可以存儲任何類型的元素。
- `List<Object>` 是一個 `List`,其中的元素必須是 `Object` 或其子類(即任何對象)。
- 你可以向 `List<Object>` 添加任何類型的元素,甚至是 `null` 或者不同類型的對象。
import java.util.List; import java.util.ArrayList; public class ObjectListExample { public static void main(String[] args) { List<Object> list = new ArrayList<>(); list.add("Hello"); // 添加一個 String list.add(10); // 添加一個 Integer list.add(3.14); // 添加一個 Double // 可以從 list 中獲取任何類型的元素,但需要進行類型轉(zhuǎn)換 Object obj1 = list.get(0); // 返回 Object 類型,需要強制轉(zhuǎn)換 String str = (String) obj1; // 需要類型轉(zhuǎn)換 System.out.println(str); // 輸出 "Hello" } }
到此這篇關(guān)于Java中List<?>和List<Object>區(qū)別的文章就介紹到這了,更多相關(guān)Java List<?> List<Object>區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用SpringBoot實現(xiàn)一個基于本地代理模式的RPC調(diào)用框架
雖然Dubbo、gRPC等成熟框架已經(jīng)為我們提供了完整的RPC解決方案,但理解其底層原理并動手實現(xiàn)一個簡化版本,對提升我們的技術(shù)理解深度很有幫助,下面我們就來看看如何使用SpringBoot實現(xiàn)一個基于本地代理模式的RPC調(diào)用框架吧2025-07-07springboot 整合 langchain4j 實現(xiàn)簡單的問答功能
最近在學(xué)習(xí)langchain4j,本文將介紹如何使用langchain4j快速實現(xiàn)一個簡單的問答功能,結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2025-04-04Springboot參數(shù)校驗之分組校驗、嵌套校驗的實現(xiàn)
日常開發(fā)中,免不了需要對請求參數(shù)進行校驗,諸如判空,長度,正則,集合等,復(fù)雜一點的請求參數(shù)可能會包含嵌套,分組校驗,本文就詳細的介紹一下,感興趣的可以了解一下2023-08-08Spring?Boot源碼實現(xiàn)StopWatch優(yōu)雅統(tǒng)計耗時
這篇文章主要為大家介紹了Spring?Boot源碼實現(xiàn)StopWatch優(yōu)雅統(tǒng)計耗時,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07Spring容器的創(chuàng)建過程之如何注冊BeanPostProcessor詳解
關(guān)于BeanPostProcessor 各位一定不陌生,今天整理的這篇文章總結(jié)了如何注冊BeanPostProcessor,文中有非常詳細的圖文示例,需要的朋友可以參考下2021-06-06關(guān)于SpringBoot打包測試、生產(chǎn)環(huán)境方式
這篇文章主要介紹了關(guān)于SpringBoot打包測試、生產(chǎn)環(huán)境方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09