map 使用对象 key 不会有问题吗?

6 条回复
102 次浏览

今天看到一个同学写的代码,使用了对象作为 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;
}
OP

就是看有问题才提出来的,也提醒自己别计较别人写的代码 😬

种子用户

你问那肯定你俩都有问题啊,他的问题是水,你的问题是知道他水还要当面说他水...doge

发表一个评论

R保持