List<Project> projects = contractorService.getContractorRefused(user.getId())
.stream()
.map(Contractor::getProjectId) // 将 Contractor 流转换为 projectId 流
.map(projectService::getById) // 将每个 projectId 映射为 Project 对象
.collect(Collectors.toList());
这段代码首先从 contractorService.getContractorRefused(user.getId())获取拒绝的承包商列表,然后通过 stream()转换成流。接着使用map(Contractor::getProjectId)将流中的 Contractor对象映射为它们的 projectId。然后再次使用 map将每个 projectId映射为对应的 Project对象,最后通过 collect(Collectors.toList())将结果收集到一个 List<Project>中。
这里使用了方法引用 projectService::getById
,它直接引用了 projectService
的 getById
方法。当您使用方法引用时,Java 会自动处理参数的传递。