Mic*_*rry 30 java generics java-7
我更喜欢Java 7引入的泛型钻石语法 - 而不是从节省时间的角度来看(毕竟大多数IDE都为你填补了这一点)但仅仅因为它使代码看起来更清晰.由于这个和其他原因(主要是我正在开发一个新的软件和Java 7中的一些新API将是有用的),我很可能会切换现有的代码库来使用/需要Java 7.
然而,有一个公平的块已经编写了前钻石语法,我想始终使用钻石语法.是否有IDE快捷方式(我使用Netbeans但显然可以在任何免费的IDE中打开项目来执行任务)或其他可以自动切换现有通用代码以使用菱形语法的东西?
irr*_*ble 42
哦,是的,我已经在IntelliJ(免费社区版)上成功完成了这项工作.
菜单>分析>检查代码...
在结果中,选择"Java语言级别迁移辅助工具>明确性类型可以替换为<>"
右键单击,运行"应用修复'替换为<>'"然后你就得到了钻石.
在anomymous类上有一个关于菱形的错误,所以一些代码可能无法在修复后编译.那时你必须还原它们.
// anonymous class, <> doesn't work.
new Factory<Pig>(){ ... }
// however IntelliJ may wrongly "fix" it to
new Factory<>(){ ... } // does not compile.
Run Code Online (Sandbox Code Playgroud)
如果您只想分析钻石而不是所有其他检查,请使用IntelliJ IDEA 12并转到:
分析>按名称运行检查...>在打开的提示中键入"显式类型可以替换为<>">选择下拉条目并按Enter键
检查运行后,您可以选择在屏幕底部的"检查"选项卡中应用此修复.
这比使用常规的"Analyze> Inspect Code ..."运行每个代码检查要快得多.
使用Eclipse,您可以使用正则表达式来查找/替换.
搜索:
new (\w+)<.+>
Run Code Online (Sandbox Code Playgroud)
并替换为:
new $1<>
Run Code Online (Sandbox Code Playgroud)
这也将替换任何匿名内部类,因此可能发生编译错误.
归档时间: |
|
查看次数: |
7156 次 |
最近记录: |