【发布时间】:2023-04-06 11:08:01
【问题描述】:
我有一个 HashMap:
Map<String, Object> ObjectMap = new HashMap<String, Object>();
我给这张地图赋值:
this.ObjectMap.put("text",new ArrayList<Object>());
现在 map 存储一个带有“text”键的对象(ArrayList)。 现在我想给那个 ArrayList 赋值。我可以这样做:
@SuppressWarnings("unchecked")
List<Object> s= (List<Object>) ObjectMap.get("text"); s.add(new Ex("n"))
我可以用更好的方式绕过注释和参数吗?
【问题讨论】:
-
当然可以,但是您需要设计一个更好的、类型安全的解决方案,而不是使用
Map<String,Object>。例如,编写一个实际的类,其中一个名为text的字段存储一个List<Ex>。提及Object的代码本身就是一个警告信号。 -
“绕过参数”是什么意思?
-
你打算在 Map 中存储什么样的对象作为值?如果它只是
List的Ex,您可以使用Map<String, List<Ex>> map。这将允许您像以前一样存储ArrayList<Ex>,但这次您将能够调用map.get("text").add(new Ex("n"))而无需强制转换。 -
要存储原始数据类型,未知但类型相同。
-
你知道哪些原始数据类型吗?