标签 HashMap 下的文章

今天看到一个同学写的代码,使用了对象作为 map 的 key,我指出这个代码可能会有问题,即使在生命周期内对象属性不变,也是危险代码,为此还吵了会,搞得同学关系都有点僵,把这个同学部分代码贴下,有没有大佬说句公道话,到底谁有问题?

复制

@Data
@EqualsAndHashCode(callSuper = false)
public class Task {
    private Long id;
    private String name;
    private Integer status;
}

public Map<Task, Long> process(List<Task> tasks) {
    Map<Task, Long> resultMap = new HashMap<>();
    
    for (Task task : tasks) {
        Long result = externalApi.call(task); // 调用外部接口
        resultMap.put(task, result);
    }
    
    return resultMap;
}