我有一个HashMap:
Map<String, Object> ObjectMap = new HashMap<String, Object>();
我为此地图添加了一个值:
this.ObjectMap.put("text",new ArrayList<Object>());
现在map使用键&#34; text&#34;存储一个对象(ArrayList)。 现在我想为该ArrayList添加一个值。我可以这样做:
@SuppressWarnings("unchecked")
List<Object> s= (List<Object>) ObjectMap.get("text"); s.add(new Ex("n"))
我可以更好地做到这一点并绕过注释和参数吗?
答案 0 :(得分:0)
如果需要阅读配置文件,可以在列表中使用Stringified值:
Map<String, List<String>> map = new HashMap<>();
map.put("key", new ArrayList<String>());
List<String> list = map.get("key");
list.add("config");
答案 1 :(得分:0)
不建议使用对象类型的值,这会导致混淆。
Map < String, List < String >> ObjectMap = new HashMap < String, List < String >> ();
this.ArrayObjectMap.put("text", new ArrayList < String > ());
ObjectMap.get("text").add("n");
答案 2 :(得分:0)
这里的问题是您使用Object
作为集合的类型。你要压制的警告是让你知道这通常不是一个好主意,因为它可以防止Java的类型系统阻止许多微妙的错误。
首先要问自己的是你将什么物品放入集合中以及它们在取出后如何使用。在大多数情况下,您会发现有interface
可以定义所有成员都可以实现以明确声明进入集合的对象必须能够做什么。
我的建议是查找该界面,然后将您的地图声明为Map<String, MyInterface>
。