gpt4 book ai didi

java - Lombok - 在实现 equals 和 hashcode 时使用 @Data 发出警告

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:37:32 27 4
gpt4 key购买 nike

我有扩展其他抽象类的 JPA 实体。我想使用 @Data 来避免编写 setter 和 getter,但我的 equals 和 hashcode 方法存在。

我收到警告,但我认为我不应该:

server\entity\User.java:20: warning: Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type.
@Data
^

在我的用户类中:

@Data
@Entity
public class User extends AbstractAuditingEntity implements Serializable {

....

@Override
public boolean equals(Object o) {
...
}

@Override
public int hashCode() {
...
}
}

当我将 @EqualsAndHashCode(callSuper = false) 添加到 @Data 时,我得到:

server\entity\User.java:21: warning: Not generating equals and hashCode: A method with one of those names already exists. (Either both or none of these methods will be generated).
@EqualsAndHashCode(callSuper = false)

最佳答案

@Data@ToString@EqualsAndHashCode@Getter@的快捷方式Setter@RequiredArgsConstructor。既然你只需要 @Getter@Setter,你为什么不直接使用它们(这将避免你的异常或警告消息),

@Entity
@Getter
@Setter
public class User extends AbstractAuditingEntity implements Serializable
...

}

关于java - Lombok - 在实现 equals 和 hashcode 时使用 @Data 发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46261314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com