jdk8 优化以下代码: List<Map<String,Object>> resultList = new ArrayList<>(); DataSource dataSource = iDataSourceClient.queryRawDataSource(); Map<String,Object> raw = new HashMap<>(); raw.put("id", dataSource.getId()); raw.put("note",dataSource.getNote()); raw.put("name",dataSource.getName()); raw.put("relate_id",dataSource.getRelateId()); raw.put("type", dataSource.getType().getDescp().toUpperCase(Locale.ROOT)); resultList.add(raw); 其中map属于java.util包
时间: 2024-02-26 21:56:53 浏览: 19
可以将代码优化为:
```
List<Map<String, Object>> resultList = new ArrayList<>();
DataSource dataSource = iDataSourceClient.queryRawDataSource();
resultList.add(new HashMap<String, Object>() {{
put("id", dataSource.getId());
put("note", dataSource.getNote());
put("name", dataSource.getName());
put("relate_id", dataSource.getRelateId());
put("type", dataSource.getType().getDescp().toUpperCase(Locale.ROOT));
}});
```
使用双括号初始化方式可以更简单地创建匿名类并实现对象的初始化。这种方式在 JDK8 中仍然适用。
相关问题
Object 转List<Map<String, Object>>
要将Object转换为List<Map<String, Object>>,你可以使用以下方法之一:
方法一:使用JDK1.8的流式操作和JSON库
你可以使用JDK1.8提供的流式操作和JSON库来实现这个转换。首先,将Object对象转换为JSON数组,然后使用流式操作将每个JSON对象转换为Map<String, Object>,最后将所有的Map对象收集到List中。具体代码如下所示:
```java
public List<Map<String, Object>> objToListMap(Object obj) throws GlobalException {
JSONArray jsonArr = JSONObject.parseArray(JSONObject.toJSONString(obj));
List<Map<String, Object>> listMapData = jsonArr.stream()
.map(s -> JSONObject.parseObject(JSONObject.toJSONString(s)).getInnerMap())
.collect(Collectors.toList());
return listMapData;
}
```
方法二:使用Jackson包
你还可以使用Jackson包来实现Object转换为List<Map<String, Object>>。首先,创建一个ObjectMapper对象,然后将Object对象转换为JSON字符串。接着,使用ObjectMapper的readValue方法将JSON字符串转换为List<Map<String, Object>>。具体代码如下所示:
```java
public List<Map<String, Object>> objToListMap(Object obj) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
String jsonStr = JSONObject.toJSONString(obj);
List<Map<String, Object>> listMap = objectMapper.readValue(jsonStr, List.class);
return listMap;
}
```
方法三:使用强制类型转换
另一种方法是使用强制类型转换来将Object对象转换为List<Map<String, Object>>。首先,使用JSONObject的parseArray和toJSONString方法将Object对象转换为JSON字符串。然后,使用强制类型转换将JSON字符串转换为List<Map<String, Object>>。具体代码如下所示:
```java
public List<Map<String, Object>> objToListMap(Object obj) {
List<Map<String, Object>> listMap =(List)JSONObject.parseArray(JSONObject.toJSONString(obj));
return listMap;
}
```
以上是三种常用的方法,你可以根据你的需求选择其中一种来实现Object转换为List<Map<String, Object>>。
jdk8 优化以下代码: public List<Map<String, Object>> getQualityDatasource(){ List<Map<String, Object>> resultList = new ArrayList<>(); DataSource dataSourceRaw = iDataSourceClient.queryRawDataSource(); resultList.add(new HashMap<String, Object>() {{ put("id", dataSourceRaw.getId()); put("note", dataSourceRaw.getNote()); put("name", dataSourceRaw.getName()); put("relate_id", dataSourceRaw.getRelateId()); put("type", dataSourceRaw.getType().getDescp().toUpperCase(Locale.ROOT)); }}); DataSource dataSourceModel = iDataSourceClient.queryModelDataSource(); resultList.add(new HashMap<String, Object>() {{ put("id", dataSourceModel.getId()); put("note", dataSourceModel.getNote()); put("name", dataSourceModel.getName()); put("relate_id", dataSourceModel.getRelateId()); put("type", dataSourceModel.getType().getDescp().toUpperCase(Locale.ROOT)); }}); DataSource dataSourceTheme = iDataSourceClient.queryThemeDataSource(); resultList.add(new HashMap<String, Object>() {{ put("id", dataSourceTheme.getId()); put("note", dataSourceTheme.getNote()); put("name", dataSourceTheme.getName()); put("relate_id", dataSourceTheme.getRelateId()); put("type", dataSourceTheme.getType().getDescp().toUpperCase(Locale.ROOT)); }}); return resultList; }
可以使用 Java 8 的 Stream API 对代码进行优化,代码如下:
```
public List<Map<String, Object>> getQualityDatasource() {
DataSource[] dataSources = {iDataSourceClient.queryRawDataSource(),
iDataSourceClient.queryModelDataSource(),
iDataSourceClient.queryThemeDataSource()};
return Arrays.stream(dataSources).map(dataSource -> {
Map<String, Object> map = new HashMap<>();
map.put("id", dataSource.getId());
map.put("note", dataSource.getNote());
map.put("name", dataSource.getName());
map.put("relate_id", dataSource.getRelateId());
map.put("type", dataSource.getType().getDescp().toUpperCase(Locale.ROOT));
return map;
}).collect(Collectors.toList());
}
```
这里使用了数组来存储数据源,然后使用 Stream API 对每个数据源进行处理,将其转换为一个 Map,并将所有 Map 收集到一个 List 中返回。