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

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

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


当前回答

我使用intellij而不是eclipse的原因只有一个:可用性

无论是调试、重构、自动完成…Intellij更容易使用一致的键绑定,可用的选项等。在特性方面,intellij很难赶上Eclipse,因为后者比intellij有更多可用的插件,而且很容易扩展。

其他回答

如果你把光标放在一个方法上,然后按CTRL+SHIFT+I将弹出方法实现。如果方法是一个接口方法,那么你可以使用上下箭头来循环实现:

Map<String, Integer> m = ...
m.contains|Key("Wibble");

|的位置(例如)您的光标所在的位置。

对我来说,它是IDEA的maven支持,特别是在版本9中是首屈一指的。项目与maven模型的动态同步非常棒,使开发变得愉快。

引入变量。(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键之前轻松更改变量的名称)

在我看来,其中一个优点是依赖结构矩阵: http://www.jetbrains.com/idea/features/dependency_analysis.html#link0

在Lattix的网站上(一个独立的产品)有一个关于DSM使用和好处的很好的介绍: http://www.lattix.com/files/dl/slides/s.php?directory=4tour

一个非常有用的特性是能够部分构建Maven反应堆项目,以便只包括您需要的部分。

To make this a little clearer, consider the case of a collection of WAR files with a lot of common resources (e.g. JavaScript, Spring config files etc) being shared between them using the overlay technique. If you are working on some web page (running in Jetty) and want to change some of the overlay code that is held in a separate module then you'd normally expect to have to stop Jetty, run the Maven build, start Jetty again and continue. This is the case with Eclipse and just about every other IDE I've worked with. Not so in IntelliJ. Using the project settings you can define which facet of which module you would like to be included in a background build. Consequently you end up with a process that appears seamless. You make a change to pretty much any code in the project and instantly it is available after you refresh the browser.

非常简洁,而且非常快。

我无法想象在没有它的情况下,在像YUI这样的东西中编写一个返回到DWR/SpringMVC的前端。