gpt4 book ai didi

java - 在知道@NonNull 注释的Eclipse 中自动生成equals 和hashCode

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:39:32 24 4
gpt4 key购买 nike

有没有一种方法可以将 Eclipse 配置为自动生成 hashCodeequals 并注意 @NonNull 注释?目前,我的 Eclipse 生成的代码带有不必要的 null 检查,即使在标记为 @NonNull 的字段上也是如此。


请注意,FindBugs 会发出警告 these null checks are redundant .当然我们可以添加@edu.umd.cs.findbugs.annotations.SuppressWarnings("RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE") 方法,但这似乎破坏了 FindBugs 和 @NonNull 在第一个中的作用地方。

在我看来,最好的解决方案是让 Eclipse 知道 JSR 305 并相应地生成 equalshashCode 而无需 null 检查(如果它们无论如何都是 null 那么就这样吧,让 NullPointerException 自然地被抛出,因为已经发生了违反契约(Contract)的情况)。

除此之外,如果能够自定义 Eclipse 生成的 equalshashCode 模板也不错。

相关问题

最佳答案

我认为那些空值检查不是是不必要的。如果将它们排除在外,则 equalshashcode 将在未通过验证的对象上出现错误行为,这将导致各种问题。

跟进

Then what's the use of @NonNull annotations if you're still going to check for null everywhere anyway?

注释的要点是声明一个有效实例在该属性中没有null,并允许基于此实现验证机制声明。

但是,没有什么要求实例在任何时候都有效。事实上,如果是这种情况,那么您在创建实例并将实例链接在一起时会遇到各种实现问题(例如)。

关于java - 在知道@NonNull 注释的Eclipse 中自动生成equals 和hashCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351722/

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