Collectors.toMap 的正确使用方式

引言

伴随着Java8的普及(有些小伙伴可能已经在玩Java17了,当然这不是重点),它为我引入了流式编程,由于本人在早些时候接触过Scala的函数式编程,所以非常喜欢一路点点的操作。

这不今天的Bug就这样产生了, 背景是因为本人在编程中多少有些代码洁癖,而且公司现在引入了一套代码质量评测平台,这样就不得不对已有的代码进行重构。经过本人一段时间的奋斗终于将2k+的code smell 降到了100以内, 项目的代码质量也在所属团队处于前列,一度使得我还得意了一阵子。好了闲话不说了, 接下来我们直接进入正题好了。

Bug 引入

在代码优化中, 我将已有的生成Map的操作改成了一下的样子。

import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.junit.jupiter.api.Test;

public class CollectorsToMapTest {

	@Test
	void test_toMap() {
		// 模拟制造重复数据
		List employees = Stream.of(Employee.create("zhangsan", 18), Employee.create("zhangsan", 18))
				.collect(Collectors.toList());
		
		Map employeeMap = employees.stream().collect(Collectors.toMap(Employee::getNa

你可能感兴趣的:(Bug,Fix,java)