作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
虽然我认为应该有一个关于是否继承注释的通用规则,但我特别感兴趣的是让 FindBugs 识别我的规则,所以这个问题是 FindBugs 特定的。
据我所知,JavaDoc 注释取自接口(interface)并在实现时被忽略。这个概念是否也适用于像 @Nonnull
(或 @NotNull
)这样的注解?
鉴于 @Override
注释,至少可以添加接口(interface)中不存在的额外注释。
在下列情况下会发生什么? FindBugs 会识别所有这些吗?关于整洁代码,哪一个是首选?
@Nonnull
,实现@Override
@Nonnull
,实现@Override
,@Nonnull
@Override,
@Nonnull`最佳答案
选择选项 2:
- Interface @Nonnull, Implementation @Override @Nonnull
如果 FindBugs 和许多其他工具(如 IDE)在正确的位置找到注释,它们会做得更好。这些注释不会被继承,正如 this section 底部的 JLS 声明的那样:
Annotation inheritance only works on classes (not methods, interfaces, or constructors)
因此工具需要自行寻找它们。有些工具可以做到这一点,但即使是 FindBugs 也不能始终如一地做到这一点(我最后检查过)。
关于java - 我是否需要在实现时再次@Nonnull?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28894461/
我需要计算像这样存储的 2 个短数据数组的 FFT(重复百万次): 等等。 数组值用黄色和蓝色表示。每个 K 值都有一个大小为 K 的未使用数据空间,我需要跳过。 我对数据进行了重新排序(和 floa
我是一名优秀的程序员,十分优秀!