[英]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.