[英]How do I return a Mono<List<Object>> into a HashMap?
[英]Return HashMap added to List<Object>
当我尝试返回添加到类型List<Object>
的HashMap时,JAVA中出现问题。 我知道我可以使用其他类型的列表,但是我需要使用List<Object>
List<Object> listOfObjects = new ArrayList<Object>();
HashMap<String, String> hashmap = new HashMap<String,String>();
hashmap.put("x", "foo");
hashmap.put("y", "bar");
listOfObjects.add(hashmap);
for (int i = 0; i < listOfObjects.size(); i++) {
System.out.println(listOfObjects.get(i));
}
我已经将哈希映射添加到listOfObject中,但是如何从listOfObject获取HashMap,以便可以使用HashMap命令。 fx:hashmap.get(“ x),它将返回” foo“。
通常我以为我可以这样写:listOfObjects.get(0).get(“ x”),它会返回“ foo”,但这是行不通的。
如果有人知道可以找到其他解决方法,但是我只需要使用一个列表即可。
通常我以为我可以这样写:listOfObjects.get(0).get(“ x”),它会返回“ foo”,但这是行不通的。
不,那不会-因为listOfObjects.get(0)
的类型只是Object
。 您如何期望编译器知道它是映射?
您可以使用:
HashMap<String, String> map = (HashMap<String, String>) listOfObjects.get(0);
// Use map...
...但是要注意,由于Java中泛型的性质,这种类型的转换并不能真正确保映射中的所有键/值对都是“字符串到字符串”。 即使您最初使用过,转换也能正常工作:
Map<Integer, Integer> badMap = new HashMap<Integer, Integer>();
badMap.put(0, 10);
listOfObjects.add(badMap);
您会为此得到警告,但是了解其含义很重要。 尚不清楚用例是什么,但如果可以使其类型更强(可能创建一个包含 Map<String, String>
?的新类),那会很好。 列表中的每个元素都会成为地图吗? 如果是这样,为什么要使用List<Object>
而不是更强类型的列表? 如果某些元素不会成为地图,那么您如何确定哪些元素将成为地图呢? (这些是您应该仔细考虑的事情。)
希望对您有帮助。
List<Object> listOfObjects = new ArrayList<Object>();
HashMap<String, String> hashmap = new HashMap<String,String>();
hashmap.put("x", "foo");
hashmap.put("y", "bar");
listOfObjects.add(hashmap);
for (int i = 0; i < listOfObjects.size(); i++) {
System.out.println(((HashMap<String, String>)listOfObjects.get(i)).get("x"));
}
通常,您的列表属于对象类型。 因此,首先将其转换为HashMap类型,然后从map中获取值
请注意以下代码
System.out.println(((HashMap<String, String>)listOfObjects.get(i)).get("x"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.