Map<String, Map<String ,Object>> listMap, idsMap.get(“contactName”).toString(); 如果idsMap.get(“contactName”)为null时会报错,如何避免报错
时间: 2024-09-19 18:16:51 浏览: 32
SQLServer数据库基本知识点.docx
`Map<String, Map<String, Object>>` 是一个嵌套映射表,外层键是字符串,值是另一个包含字符串和任意类型的子映射。当访问 `idsMap.get("contactName")` 时,如果 "contactName" 键不存在,会返回 `null`。
为了避免因尝试调用 `toString()` 方法于 `null` 对象而导致的 `NullPointerException`,你应该先检查 `get()` 方法是否返回了非 `null` 的结果。你可以使用条件语句(如 if 或者 Optional 类)来处理这种情况。这里是示例:
```java
Optional<Map<String, Object>> subMap = idsMap.get("contactName");
if (subMap.isPresent()) {
String result = subMap.get().toString();
// 使用result变量,它现在是非空的
} else {
System.out.println("Key 'contactName' not found in the map.");
}
```
在这个例子中,`isPresent()` 检查是否存在指定的键,然后我们只调用 `get()` 和 `toString()` 如果子映射存在。如果键不存在,程序将打印一条友好的错误消息而不是抛出异常。
阅读全文