3

有没有办法将 Eclipse 配置为自动生成hashCodeequals意识到@NonNull注释?目前,我的 Eclipse 生成带有不必要null检查的代码,即使在标记为@NonNull.


请注意,FindBugs 会发出警告,指出这些空检查是多余的。当然我们可以添加 @edu.umd.cs.findbugs.annotations.SuppressWarnings("RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE")到方法中,但这似乎首先破坏了 FindBugs 的作用@NonNull

在我看来,最好的解决方案是让 Eclipse 了解 JSR 305 并生成equalshashCode相应地生成而不null进行检查(如果它们仍然存在null,那么就让它NullPointerException自然抛出,因为发生了合同违规)。

除此之外,有一种方法来自定义Eclipse 生成equalshashCode模板也很好。

相关问题

4

1 回答 1

2

我认为那些空检查不是不必要的。如果它们被排除在外,那么在未通过验证的对象equalshashcode就会出现异常行为,这将导致各种问题。

跟进

那么,如果您仍然要在任何地方检查 null,那么 @NonNull 注释有什么用呢?

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

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

于 2010-12-04T03:15:48.420 回答