Map<String, Object> response3 = new HashMap<>(); Map集合为键值对,值为String和int两种类型,取值时强制转型为Sting和int,KEY为id的值为int型,KET为name的值为String型,分别举个例子,如何取值
时间: 2024-09-19 07:02:04 浏览: 38
`Map<String, Object>` 的设计允许存储任意类型的对象作为值,包括字符串和整数。当你需要从这样的集合中获取值时,通常会先通过键(key)来定位到对应的值,然后根据值的实际类型进行转换。
例如,如果`id`键对应的是一个整数,你可以这样做:
```java
int idValue = ((HashMap<Integer, String>) response3.get("id")).get(0); //假设"id"对应的值是一个包含整数的列表的第一个元素
```
这里我们首先通过`response3.get("id")`获取值,由于返回的是Object类型,我们需要强制转换成`HashMap<Integer, String>`,再通过`get(0)`获取具体的整数值。
对于`name`键,如果你确认其值是字符串类型,可以直接取:
```java
String nameValue = (String) response3.get("name");
```
同样地,这里假设`name`键总是直接关联一个字符串值。
注意,虽然可以使用强制类型转换,但为了保证程序的健壮性,最好还是在访问之前检查值是否存在以及正确的类型,避免`NullPointerException`或类型转换异常。例如:
```java
Integer idFromMap = null;
if ("id".equals(key) && response3.containsKey(key)) {
idFromMap = (Integer) response3.get(key);
}
String nameFromMap = "";
if ("name".equals(key) && response3.containsKey(key)) {
nameFromMap = (String) response3.get(key);
}
```
阅读全文