簡體   English   中英

通過Hashmap對象處理值

[英]Work with values through Hashmap object

我有一個HashMap:

Map<String, Object> ObjectMap = new HashMap<String, Object>();

我在這張地圖上添加了一個值:

this.ObjectMap.put("text",new ArrayList<Object>());

現在,地圖存儲具有鍵“文本”的對象(ArrayList)。 現在,我想為該ArrayList賦值。 我可以這樣:

@SuppressWarnings("unchecked")
List<Object> s= (List<Object>) ObjectMap.get("text"); s.add(new Ex("n"))

我可以做這種更好的方法並繞過注釋和參數嗎?

如果您需要讀取配置文件,則可以在列表中使用Stringified值:

Map<String, List<String>> map = new HashMap<>();
map.put("key", new ArrayList<String>());
List<String> list = map.get("key");
list.add("config");

不要將值作為不推薦的對象類型使用,並引起混淆。

Map < String, List < String >> ObjectMap = new HashMap < String, List < String >> ();
this.ArrayObjectMap.put("text", new ArrayList < String > ());
ObjectMap.get("text").add("n");

這里的問題是您將Object用作集合的類型。 您要抑制的警告是為了讓您知道這通常不是一個好主意,因為它阻止Java的類型系統阻止許多細微的錯誤。

首先要問自己的是,您將哪些對象放入集合中以及如何將其取出。 在大多數情況下,您會發現可以定義一個interface ,所有成員都可以實現該interface ,以明確聲明進入集合的對象必須能夠執行的操作。

我的建議是尋找該接口,然后將地圖聲明為Map<String, MyInterface>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM