将现有泛型转换为菱形语法

2022-09-01 10:24:37

我更喜欢Java 7引入的泛型的菱形语法 - 从节省时间的角度来看(毕竟大多数IDE无论如何都会为你填补这一点),而只是因为它使代码看起来更干净。由于这个和其他原因(主要是我正在开发一个新的软件,Java 7中的一些新API将是有用的),我很可能会切换现有的代码库来使用/需要Java 7。

但是,已经有一个相当大的块编写了前菱形语法,我想在整个过程中始终如一地使用菱形语法。是否有 IDE 快捷方式(我正在使用 Netbeans,但显然可以在任何免费的 IDE 中打开项目来执行任务)或其他可以自动切换现有通用代码以使用菱形语法的东西?


答案 1

哦,是的,我已经在IntelliJ(免费社区版)上成功地做到了这一点。

菜单>分析和>检查代码...

在结果中,选择“Java 语言级别的迁移辅助工具>显式类型可以替换为<>”

右键单击,运行“应用修复'替换为<>'”,然后你得到了钻石。

在异常类上有一个关于钻石的错误,所以一些代码在修复后可能无法编译。您必须在那时还原它们。

// anonymous class, <> doesn't work.
new Factory<Pig>(){ ... }  
// however IntelliJ may wrongly "fix" it to
new Factory<>(){ ... }   // does not compile.

答案 2

如果您只想分析钻石而不是所有其他检查,请使用IntelliJ IDEA 12并转到:

分析>按名称运行检查...>键入“显式类型可以替换为<>”进入打开的提示>选择下拉条目并按 Enter

检查运行后,可以选择在屏幕底部的“检查”选项卡中应用修复。

这比使用常规的“分析>检查代码...”来运行每个代码检查要快得多。


推荐