我们目前正在使用 JCIP 注释进行并发检查,并希望尝试切换到 JSR 305 注释以实现相同目的。稍后我们将做同样的事情,从 JetBrains 注释切换到 JSR 305 等价物,这将是一项更大的任务,因为它们被更多地使用。
我已经尝试了多种方法来做到这一点。
如果我使用简单的文本替换进行查找和替换,则导入语句最终会出现乱序。在几乎所有情况下,由于导入顺序,这会破坏代码样式。在某些情况下,IDEA 似乎无法看到它们出现故障并且不会让我修复它,所以我必须手动检查所有文件,在这种情况下我不妨完成整个工作手动。
我尝试了结构替换,发现整个功能和往常一样无法使用。它甚至似乎无法找到注释。
我最终尝试从我正在搜索的内容中删除 @ 并且它找到了注释(有点讽刺的是,即使这个功能的目的是在结构上找到东西,当你真正尝试找到一些结构时,它突然赢了'找不到任何东西。)然后它用新注释的完全限定版本替换它们,即使我告诉它缩短名称。更糟糕的是,它不会将这些名称检测为不必要的完全限定,因此它没有为此提供自动修复,这意味着我不能自动在所有文件上运行它。(它还将新注释显示为语法错误,我只能认为这是一个错误。)
我还尝试了 Migrate 功能,将所有旧的和类名添加进去并告诉它迁移。我发现这与结构上的替换具有相同的效果 - 它没有导入导入,让我手动修复所有这些。
也许还有另一种方法可以做到这一点?