java - 组合从 JSON 加载的两个 Map block

标签 java

我有下面的代码,代码没有问题,只是我想知道是否有一种方法可以将两个 try block 合并为一个。

public void populateMap(Map data){

    String jsonData1 = readJSON("FILE_1_PATH");
    String jsonData2 = readJSON("FILE_2_PATH);

    if (StringUtils.isNotBlank(jsonData1)) {
        try{
            Map<String,String> dataMap = ObjectMapper.readValue(jsonData1,POJO.class);
            data.put("file1",dataMap);
        }catch(Exception e){
            //Handle exception
        }
    }

    if (StringUtils.isNotBlank(jsonData2)) {
        try{
            Map<String,String> dataMap = ObjectMapper.readValue(jsonData2,POJO.class);
            data.put("file2",dataMap);
        }catch(Exception e){
            //Handle exception
        }
    }
}

最佳答案

您可以很容易地合并它们,并且不需要 Map 变量,只需将它们的值内联到传递给 data.put() 的参数中即可:

public void populateMap(Map data){
  String jsonData1 = readJSON("FILE_1_PATH");
  String jsonData2 = readJSON("FILE_2_PATH);

   try{
        if (StringUtils.isNotBlank(jsonData1)) {
          data.put("file1", ObjectMapper.readValue(jsonData1,POJO.class));
        }  
        if (StringUtils.isNotBlank(jsonData2)) {
           data.put("file2",ObjectMapper.readValue(jsonData2,POJO.class));
        }  
   }catch(Exception e){
    //Handle exception
   }
}

请注意,Map 参数是原始类型。倾向于泛型类型而不是。

关于java - 组合从 JSON 加载的两个 Map block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57063328/

相关文章:

java - ELM327 在尝试将其与 ODB Java API 一起使用时返回 `?`

java - 比较 Map 值并排序

AMD 64 位平台上的 java.lang.UnsatisfiedLinkError : C:\Program Files\Java\jdk1. 7.0_09\jre\bin\jmtp.dll : Can't load IA 32-bit . dll

java - 慢慢地画一条线

java - 如何忽略 Solr 索引中的某些 HTML 部分(例如页眉、菜单、页脚)?

java - 无法找到 JAX-WS 的 Spring 命名空间

java - 如果我有ArrayList,如何比较两个HashMap?

java - 管理检查 JUnit 中抛出的 ExpectedException 的规则

java - WildFly 12 和 Java 10 不识别注解

java - 指定MDB的消息监听器接口(interface)