重复密钥 - 误导性异常信息?

Ver*_*ion 6 java java-8 java-stream

异常消息抱怨重复键但显示值的原因是什么?

List<Employee> employees = new ArrayList<>();
employees.add(new Employee("John", 40));
employees.add(new Employee("John", 30));

Map<String, Integer> map = employees.stream()
    .collect(Collectors.toMap(Employee::getName, Employee::getAge));
Run Code Online (Sandbox Code Playgroud)

它不显示"John"作为重复键,而是显示"40"

Exception in thread "main" java.lang.IllegalStateException: Duplicate key 40
    (...)
Run Code Online (Sandbox Code Playgroud)

小智 5

它已在JDK 9中修复.看看这里. https://bugs.openjdk.java.net/browse/JDK-8173464