我听说有人选择了其中一种方式,并对其中一种方式发誓。

作为一个Eclipse的忠实粉丝,但没有时间尝试IntelliJ,我很有兴趣从“前Eclipse用户”IntelliJ用户那里听到一些用IntelliJ可以做而用Eclipse不能做的具体事情。

注意:这不是一个主观的问题,也不意味着变成一场IDE圣战。请为任何煽动性的答案投票。


当前回答

数据流分析:如本文所述,过程间的反向流分析和正向流分析。我的经验是基于Community Edition,它在数据流分析方面做得相当好。当代码非常复杂时,它在少数情况下会失败(拒绝做任何事情)。

其他回答

别忘了“和剪贴板比较”。

这是我在IntelliJ中一直使用的,而在Eclipse中没有对应的东西。

IntelliJ有一些相当高级的代码检查(与FindBugs类似但又不同)。

虽然我在使用IntelliJ时非常想念FindBugs插件(Eclipse/FindBugs集成非常酷)。

下面是IntelliJ支持的代码检查的官方列表

编辑:最后,IntelliJ有一个findbugs-plugin。它仍处于测试阶段,但代码检查和FindBugs的组合非常棒!

引入变量。(Windows下按Ctrl+Alt+V, OSX下按Cmd+Alt+V)

假设调用service。listallpersons()方法 按Ctrl+Alt+V并回车,方法调用的返回值的变量被插入:

List<Person> list = service.listAllPersons();

节省输入,并且不必检查所调用方法的返回类型。在使用泛型时尤其有用,例如:

new ArrayList<String>()

(引入变量)

ArrayList<String> stringArrayList = new ArrayList<String>();

(当然,你可以在按Enter键之前轻松更改变量的名称)

Idea 8.0有可爱的ctrl+shift+space x 2,可以完成以下自动完成:

 City city = customer.<ctrl-shift-space twice>

解析为

 City city = customer.getAddress().getCity();

通过任何级别的getter /setter。

Alt+Insert以列模式编辑文本。