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

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

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


当前回答

因为有了新的Android Studio,我试着改用IntelliJ。但我现在很失望。我使用Eclipse和代码推荐器插件。下面是Eclipse如此出色的一个简单示例:

我想创建一个新的SimpleTimeZone。SimpleTimeZone没有带零参数的构造函数。

在Eclipse中Ctrl + Space

IntelliJ中的Ctrl +空格

在IntelliJ中,我没有得到SimpleTimeZone有什么样的构造函数的信息。

进入Eclipse后

我得到先前选择的构造函数,其中填充了预定义的变量名。我可以看到每个参数的类型。使用代码推荐器,Eclipse根据先前在当前作用域中定义的变量类型猜测正确的构造函数,并用这些变量填充构造函数。

在IntelliJ中输入后什么都没有发生。构造函数是空的。我必须按Ctrl + P才能看到预期的参数。

其他回答

我经常使用的一件事是设置断点,然后控制它的功能。(在我的上一份工作中,大多数人都使用Eclipse……我记得我很惊讶,没有人能在Eclipse中找到如何做到这一点。)

例如,可以让断点实际上不停止,而只是将消息记录到控制台。这意味着,我不必用“System.out.println(…)”乱写代码,然后重新编译。

IntelliJ具有从代码到jspx文档的智能感知和重构支持。

从Maven POM打开一个项目。 只需选择“打开项目…”导航到你的顶级pom.xml,并按Enter:) NetBeans现在也有这个特性。

回答的序言:我对Eclipse的使用是有限的。我们需要一个Java IDE在Windows和Mac上都能运行,而Mac的移植速度越来越慢。这是几年前的事了,我相信现在没问题了。但这正是我们转向IntelliJ的原因,我们对它很满意。

现在是我的答案:我还没有看到提到的一个很大的区别是,IntelliJ/Jet Brains的技术支持更好。我们向JetBrains发送电子邮件,并在不到一个小时内得到明确的答复。寻找Eclipse问题的答案通常会得到“你这个愚蠢的白痴”的答案(通常是一小部分回答),同时还有大量有见解的、有帮助的回答。但要得到真正的答案还需要一些梳理。

结构搜索和替换。

例如,搜索如下内容:

  System.out.println($string$ + $expr$);

其中$string$是一个文字,$expr$是my.package.and.Class类型的表达式,然后替换为:

  $expr$.inspect($string$);