有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何为记录定制equals/hashCode?

我有这样的记录:

record Data(int x, int y, int a) {}

它获取默认的equalshashCode方法


我如何调整这些方法使其具有自定义行为?比方说,我想忽略方法中的a


共 (1) 个答案

  1. # 1 楼答案

    不幸的是,只有一种方法可以做到这一点:你必须自己实现这些方法。只需像覆盖所有其他类一样覆盖这些方法。在您自己的实现中,只使用您想要的属性。IDE通常会帮助您实现标准代码,并要求提供应该包含的属性

    或者,您可以使用Lombok之类的工具进行注释,而不是实现:

    @Data
    public class Data{
        private int x;
        private int y;
        @EqualsAndHashCode.Exclude private int a;
    }