java - 确保具有特定注释的字段为 'private'

标签 java intellij-idea static-analysis checkstyle pmd

我们代码中很常见的错误是这样写

@Mock Object object;
@InjectMocks Subject subject;

代替

@Mock private Object object;
@InjectMocks private Subject subject;

这可以防止 PMD/FindBugs/IntelliJ 在该字段未使用时发出警告,而且我们的代码审查中充斥着“将此字段设为私有(private)”的评论。

当带有特定注释的字段没有预期的可见性时,任何工具中是否有任何静态分析规则来发出警告?

我找到了 Checkstyle 的 VisibilityModifier , 但它标记所有非私有(private)字段,而不仅仅是带有特定注释的字段。

最佳答案

您可以使用 IntelliJ IDEA 中的结构搜索检查。例如使用这样的模式:

@Mock @Modifier("packageLocal") $FieldType$ $FieldName$ = $Init$;

字段类型:最小值:1,最大值:1
字段名:最小值:1,最大值:1
初始化:最小值:0,最大值:1

关于java - 确保具有特定注释的字段为 'private',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33660204/

相关文章:

java - java迭代器中的自定义链表无法迭代整个列表

java - 如何使用 Java 获取带有 Selenium WebDriver 的父 HTML 标记

java - findbugs 报告了这些关于我的项目代码的错误。为什么?

intellij-idea - IntelliJ IDEA 13 : Keyboard shortcuts to navigate stack trace after running tests?

java - IntelliJ IDEA 检查器不再适用于 github 项目?

java - 为什么Java接口(interface)常量被Checkstyle中的ConstantName检查视为非公共(public)的

java - FindBugs 新公式

java - 使用代理与进程附加 jvm 分析器之间的区别

java - 使用 Maven 构建 spring-boot 项目时将文件复制到 jar 根目录

python - 如何在新的运行工具窗口中运行相同的应用程序? Pycharm 社区 2017