我听说有人选择了其中一种方式,并对其中一种方式发誓。
作为一个Eclipse的忠实粉丝,但没有时间尝试IntelliJ,我很有兴趣从“前Eclipse用户”IntelliJ用户那里听到一些用IntelliJ可以做而用Eclipse不能做的具体事情。
注意:这不是一个主观的问题,也不意味着变成一场IDE圣战。请为任何煽动性的答案投票。
我听说有人选择了其中一种方式,并对其中一种方式发誓。
作为一个Eclipse的忠实粉丝,但没有时间尝试IntelliJ,我很有兴趣从“前Eclipse用户”IntelliJ用户那里听到一些用IntelliJ可以做而用Eclipse不能做的具体事情。
注意:这不是一个主观的问题,也不意味着变成一场IDE圣战。请为任何煽动性的答案投票。
当前回答
从Maven POM打开一个项目。 只需选择“打开项目…”导航到你的顶级pom.xml,并按Enter:) NetBeans现在也有这个特性。
其他回答
首先,我喜欢intellij。它至少有100个eclipse所缺乏的特性。在重构、重命名、移动和其他已经提到过的东西时,我所说的可靠性和智能程度是任何夸张都无法形容的。
但是,有一件事intellij不允许,而eclipse做到了。它不允许在同一个vm下同时运行多个项目。
当你有独立的前端、中间、核心、代理项目时…等等,它们都必须相互交互,你不能同时快速修改和调试。我目前处理这个问题的唯一方法是使用ant脚本在依赖的项目中部署和更新jar,或者使用maven。
Eclipse允许在一个ide vm实例下调试多个项目。
结构搜索和替换。
例如,搜索如下内容:
System.out.println($string$ + $expr$);
其中$string$是一个文字,$expr$是my.package.and.Class类型的表达式,然后替换为:
$expr$.inspect($string$);
我没有用IntellijIdea编写过很多代码,但是在IntellijIdea中,你可以看到括号(if, try/catch, cycle等)之间的代码块在哪里开始,在哪里结束。
在Eclipse中(我在Eclipse 3.2中编码),您只能手动识别块。
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键之前轻松更改变量的名称)