OrgEmployeeProDto 包含字段empCode和empName List<OrgEmployeeProDto> employeeProDtoList 转换成Map<String, String> map map的key值为empCode,value值为empName key不能为空
时间: 2023-12-14 18:38:52 浏览: 31
您可以使用 Java 8 的 Stream API 进行转换,示例如下:
```java
Map<String, String> map = employeeProDtoList.stream()
.filter(dto -> dto.getEmpCode() != null && dto.getEmpName() != null) // 过滤掉 empCode 或 empName 为空的对象
.collect(Collectors.toMap(OrgEmployeeProDto::getEmpCode, OrgEmployeeProDto::getEmpName));
```
上述代码中,我们使用 `filter` 方法过滤掉 empCode 或 empName 为空的对象,然后使用 `toMap` 方法将 empCode 作为 key,empName 作为 value 构建成 Map 对象。其中 `OrgEmployeeProDto::getEmpCode` 和 `OrgEmployeeProDto::getEmpName` 分别表示获取对象的 empCode 和 empName 属性的方法引用。
相关问题
OrgEmployeeProDto 包含字段empCode和empName List<OrgEmployeeProDto> employeeProDtoList 转换成Map<String, String> map map的key值为empCode,value值为empName
可以使用Java 8的流式操作来实现这个转换过程,具体代码如下:
```
Map<String, String> map = employeeProDtoList.stream()
.collect(Collectors.toMap(OrgEmployeeProDto::getEmpCode, OrgEmployeeProDto::getEmpName));
```
这段代码将List<OrgEmployeeProDto> employeeProDtoList转换成了Map<String, String> map,其中map的key值为每个OrgEmployeeProDto对象的empCode属性,value值为每个OrgEmployeeProDto对象的empName属性。
<resultMap id="empAndDeptResultMap" type="Emp"> <id column="emp_id" property="empId"></id> <result column="emp_name" property="empName"></result> <result column="age" property="age"></result> <result column="gender" property="gender"></result> <result column="dept_id" property="dept.deptId"></result> <result column="dept_name" property="dept.deptName"></result> </resultMap>中为什么Emp类中没有无参构造MyBatis却能正确创建Emp对象
在MyBatis中,如果一个类中没有显式定义无参构造函数,Java会自动提供一个无参构造函数。当MyBatis创建Emp对象时,它会首先调用Emp的无参构造函数来创建一个对象,然后通过调用setter方法来设置对象的属性。因此,尽管Emp类中没有显式定义无参构造函数,MyBatis仍然可以正确创建Emp对象。
但是,如果Emp类中定义了有参构造函数,而没有显式定义无参构造函数,那么在创建Emp对象时就会出现问题。因为MyBatis无法通过调用无参构造函数来创建Emp对象,因此会抛出异常。所以,最好为每个类都显式地定义一个无参构造函数,以确保MyBatis能够正确地创建对象。