Tag: jsr305

是否有一个很好的Eclipse插件来检查@Nonnull和@Nullable注释?

在Eclipse中检查@Nonnull和@Nullable注释是一个早期测试版 。 最大的问题是它不知道Java API的null行为。 还有其他目前更好的插件吗?

@ParametersAreNonnullByDefault是否也适用于方法返回值?

@ParametersAreNonnullByDefault的文档说: 此注释可以应用于包,类或方法,以指示默认情况下该元素中的方法参数是非空的,除非… 我不认为方法的返回类型/值是它的参数。 它只是其签名的一部分,所以这对我来说有点模棱两可。 方法的Java教程似乎和我一样。 正如Joachim Sauer在他的回答的评论部分中为我指出的那样,名称@ParametersAreNonnullByDefault ( 参数 )应该清楚地表明这个注释不适用于方法的返回类型/值。 我是盲人! :)谢谢Joachim! 鉴于此,我只能说@EverythingIsNonnullByDefault应该存在于其中。 🙂

如何在默认情况下指示成员字段是@Nonnull?

我的问题是对这一问题的后续行动。 在以前版本的FindBugs中,可以使用@DefaultAnnotation(Nonnull.class)或@DefaultAnnotationForFields(Nonnull.class)来指示包中的所有字段都应该被视为@Nonnull 。 在当前版本的FindBugs(2.0)中,不推荐使用@DefaultAnnotation和@DefaultAnnotationForFields ,我们都应该使用JSR-305。 但JSR-305似乎并未涵盖(现已弃用)FindBugs注释所涵盖的所有内容。 javadoc确实提出了许多替代方案: @ParametersAreNonnullByDefault 。 这(显然)仅适用于参数,而不适用于成员字段。 @CheckReturnValue ,应用于类型或包时。 同样,这不适用于成员字段。 @TypeQualifierDefault 。 也许这可以做我想要的,但我不明白它是如何工作的,除了一些神秘的javadoc之外,我无法找到任何有关其用法或意图的文档或示例。 我认为这将有助于我创建自己的注释,但我可以确定所有工具(FindBugs,Eclipse等)都能正确地解释这个新注释(甚至根本没有)吗? javadoc没有提供有关如何处理其弃用的任何提示。 因此,使用当前版本的FindBugs和/或JSR-305,我应该如何指出特定包中(甚至某个类中)的所有成员字段都应该被视为@Nonnull ? 它甚至可能吗?

JSR305与JSR308(Java类型Anotations) – 哪个将成为标准?

似乎有两种不同的JSR用于注释。 JSR-305:软件缺陷检测注释 (附加资源) JSR-308:Java类型的注释 (附加资源) 两者似乎都面向静态代码分析。 你知道吗: 哪两个都将在Java SE 7或Java EE 6中? 每个JSR的“稳定”程度如何? 那个人会取代(或淘汰)另一个吗?

@Nullable / @NotNull与IntelliJ IDEA,Maven和JSR 305

我非常喜欢代码检查function,现在可以使用JSR 305或Jetbrains的IntelliJ专有注释。 不幸的是,两种实现(JSR 305和Jetbrains’)混合不好: IntelliJ显然只能理解它自己的专有注释集并很好地集成它们。 在我的Maven Build中使用Findbugs,它只支持JSR-305注释。 唯一可能的解决方法可能是使用JSR-305并使用IntelliJ中的Findbugs插件。 谁有更好的主意? (请不要说改变你的IDE;))。 谢谢托马斯