我有下面的代码,代码没有问题,只是我想知道是否有一种方法可以将try块组合成一个。
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
}
}
}
答案 0 :(得分:0)
您可以轻松地合并它们,并且也不需要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
参数是原始类型。优先使用通用类型。
答案 1 :(得分:0)
您可以从字面上将尝试的第二个主体移到第一个。
public void populateMap(Map data){
String jsonData1 = readJSON("FILE_1_PATH");
String jsonData2 = readJSON("FILE_2_PATH);
try{
if (StringUtils.isNotBlank(jsonData1)) {
Map<String,String> dataMap =
ObjectMapper.readValue(jsonData1,POJO.class);
data.put("file1",dataMap);
}
if (StringUtils.isNotBlank(jsonData2)) {
Map<String,String> dataMap =
ObjectMapper.readValue(jsonData2,POJO.class);
data.put("file2",dataMap);
}
}catch(Exception e){
//Handle exception
}
}
}
}
提示:在Java 7及更高版本中,您可以在catch块中放置多个异常
try {
// statement that could raise ExceptionTypeA and/or ExceptionTypeB
} catch (ExceptionTypeA | ExceptionTypeB exception) {
// statement to handle exception
}