我已经使用 IntelliJ 大约 5 年了(从 4.5 版开始),并且我还阅读了 Manning 的大部分书籍“IntelliJ in Action”,但我仍然不认为自己是这方面的专家。事实上,我也想用它来做“普通的老式 Java 开发”,老实说,我不得不说它在这方面做得很好。像其他答案一样,我只能说它的有用性有一个明确的优势,它真的把它放在首位。我们在这里也在工作中使用 Eclipse,虽然我没有那么多经验,但我可以告诉你,它肯定缺少很多基本的东西。我投入了一些认真的时间和精力来学习 Eclipse,寻找如何在 IntelliJ 中完成我认为理所当然的日常事情,但它们大多不存在或实现得很差。重构的东西肯定是有很大帮助的。
除了重构之外,我认为只有大量的小改动确实有助于实现这一点。我认为一个例子可能有助于澄清......
试试这个:
创建一个新的空类。将光标移动到大括号内并执行 psvm 并按 Ctrl-J - 这会将“psvm”扩展为“public static void main(String[] args)”。这个快捷方式将处理一整套常用的习语(它也是可配置的)。在主代码块中,输入以下代码:
public static void main(String[] args) {
int x = 1000;
sout
}
在“sout”的末尾,再次执行 Ctrl-J - 您会看到另一个弹出窗口,让您可以从一些不同的扩展中进行选择,但通常会扩展为“System.out。 println("")" 和 helpfully 将光标放在双引号之间(我认为,像这样的小改动确实让它发光。与 Visual Studio 的“IntelliSense”相比 - 如果你问我)。
无论如何,第一个双引号上的退格 - 请注意它会删除匹配的双引号?它也对大括号和方括号做同样的事情。我认为在某些极端情况下我更喜欢它不这样做,但大多数时候它有很大帮助。回到代码编辑:只需键入 x,代码现在看起来像这样:
public static void main(String[] args) {
int x = 1000;
// add a few blank lines here too - the need for
// this will be obvious a little later
System.out.println(x);
}
现在,将光标移到 x 的声明上,然后执行 Shift-F6 - 这是就地重构对话框(我不知道如何称呼它,所以我只是编造了它)。名称“x”周围有一个彩色框,您可以开始为它输入一个新名称 - 在您输入时,该名称的所有使用也会动态更新。另一个我非常喜欢的简洁风格。
试试这个:在某处放一个很长的行注释,像这样:
// this is a really long comment blah blah blah i love to hear myself talking hahaha
现在假设您认为评论太长,所以您将光标移动到它的中间某处并按 Enter。 IntelliJ 会将评论的剩余部分放在前面的“//” - 它“知道”这是前一个评论的延续,因此它会为您提供。另一个整洁的触摸。
// this is a really long comment blah
// blah blah i love to hear myself talking hahaha
与 Eclipse 相比,我喜欢 IntelliJ 的另一大好处是它的侵入性要小得多 - 我真的很讨厌 Eclipse 如何设法在弹出窗口之上获取弹出窗口,并且鼠标焦点会在某个地方,但键盘焦点会卡在下面的某个东西上,等等。我认为有可能以一种不会发生这类事情的方式工作,但这首先让我非常恼火。这提醒了我,在 IntelliJ 中,如果您将鼠标光标移动到左侧窗格中的包或文件导航器上,该面板会自动获得鼠标焦点,因此我习惯于立即使用鼠标滚轮环顾四周。在日食中?您将鼠标悬停在编辑窗格上,但焦点停留在编辑窗格上,因此您必须用鼠标单击以转移焦点,然后才能使用鼠标滚轮环顾四周。就像我说的,有很多这样的小动作有助于提高工作效率。
在您编写代码时,请注意当前行上红色“灯泡”类型符号的左侧排水沟栏 - 这是 IntelliJ 告诉您它可以做的事情。使用 Alt-Enter 调出一个小的就地对话框,它会告诉你它可以自动处理什么。假设您输入了一个名为“getFoo()”的方法定义并且没有 foo 成员 - 它会为您创建它。或者,如果您正在使用一个类并在其上调用一个不存在的方法,例如 getFoo() - 它会提供创建一个 getter 和一个成员,或一个常规方法。这简直太有帮助了。
总的来说,我想说 IntelliJ 大师们并不是真正想要谈论的小改动,但我真的很欣赏这些事情是如何“做得很好”的。它们会处理小细节,因此您不必花太多时间来检查自己的语法。我认为它是帮我编写代码的管家——它会为我处理一些小事,所以我不必这样做。蝙蝠侠有他的阿尔弗雷德,我有我的 IntelliJ。所有设置都经过精心布置,您可以根据需要进行修改,但似乎默认设置都是为了提高您的工作效率,而不是一直用真正平凡的决定来打扰您(尤其是那些您几乎总是会做出的决定)还是一样的选择)。
IntelliJ 有一些明显的缺点 - 价格有点高,而且非常大,可能需要一段时间才能加载大型项目。我很幸运,我的公司支付了许可证费用以及一个非常好的工作站,因此加载速度相当快,但您的里程会有所不同。