【发布时间】:2017-01-27 22:51:27
【问题描述】:
我有一个Map<Person, Long> personToSalary,我想将其映射到另一个Map<String, Long> lastnameToSalary。
现在,这可能会导致两个通常不相等的 Person 对象将具有相等的 lastname 属性,这将导致重复键插入到新映射中。这没关系,只要我能捕捉到这个异常,并抛出我自己的异常。但不知道该怎么做。
这里是代码。
Map<Person, Long> personToSalaray = getMappings();
// lastname to salary
Map<String, Long> personToSalary.entrySet().stream()
.collect(toMap(
e -> e.getKey().getLastname(),
e -> e.getValue()));
虽然这可行,但它可能会在重复键插入(相同的姓氏)时引发异常。怎么抓?我无法在 toMap 中声明 try-catch。
【问题讨论】:
标签: java lambda exception-handling java-8