Java中List add添加不同類型元素的講解
問題:
今天看java的list ,list后面的<> 里面可以填多種類型,但是如果不填寫類型那就默認為 Object 類型。 所有我門 add 到 list 里的 數(shù)據(jù)都會被轉換成 Object 類型。
而當我門再從list 中取出該數(shù)據(jù)時,就會發(fā)現(xiàn)數(shù)據(jù)類型已經(jīng)改變。
解答
java集合中 能添加不同類型的元素其實不同類型的元素,只是地一定層次是不同元素,根本上都繼承于Object類,本質上還是同一類型的元素。
List<Object> list = new ArrayList<Object>();
list.add("abc");
list.add(123);
list.add(new HashMap<Integer,String>());
都可以。
或者說你聲明集合時,不聲明它的泛型類型如:
List list = new ArrayList();
它默認就是Object泛型的,跟上面的List<Object>效果一樣。
Object類是所有Java類的祖先。每個類都使用 Object 作為超類。所有對象(包括數(shù)組)都實現(xiàn)這個類的方法。
在不明確給出超類的情況下,Java會自動把Object作為要定義類的超類。
可以使用類型為Object的變量指向任意類型的對象。
在Java中由于繼承和向上轉型,子類可以非常自然地轉換成父類,但是父類轉換成子類則需要強制轉換。因為子類擁有比父類更多的屬性、更強的功能,所以父類轉換為子類需要強制。那么,是不是只要是父類轉換為子類就會成功呢?其實不然,他們之間的強制類型轉換是有條件的。
由于以上的原因 我門存入 list 的不同類型的對象都可以 自然的轉換成Object 類型,但是取出的時候都需要強制轉換。
示例

總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
Java中不得不知的Collection接口與Iterator迭代器
這篇文章主要介紹了Java中的Collection接口與Iterator迭代器,文中有詳細的代碼示例供大家參考,對我們的學習或工作有一定的幫助,需要的朋友可以參考下2023-06-06
SpringBoot創(chuàng)建自定義starter詳解
這篇文章主要介紹了SpringBoot創(chuàng)建自定義starter詳解,Starter是Spring Boot中的一個非常重要的概念,Starter相當于模塊,它能將模塊所需的依賴整合起來并對模塊內的Bean根據(jù)環(huán)境(條件)進行自動配置,需要的朋友可以參考下2024-01-01
Spring Security基于HttpRequest配置權限示例詳解
這篇文章主要介紹了Spring Security基于HttpRequest配置權限示例詳解,我們在配置中配置的url被封裝成RequestMatcher,而hasRole被封裝成AuthorityAuthorizationManager,本文結合示例代碼講解的非常詳細,需要的朋友可以參考下2024-03-03
freemarker簡介_動力節(jié)點Java學院整理
FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫,有興趣的可以了解一下2017-08-08

