- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
为何 IntelliJ IDEA 比 Eclipse 更好
为何 IntelliJ IDEA 比 Eclipse 更好
有一些没有唯一正确答案的“永恒”的问题,例如哪个更好:是Windows还是Linux,Java还是C#;谁更强壮:Chuck Norris还是Van Damme。
其中的一个圣战便是Java IDE的选择:
有许多争论的话题是讨论它们哪个有更多的插件、快捷键等等。它们之间有太多的不同而很难决定什么才是最重要的。
因此,人们都表示两个IDE在功能性上都差不多,选择某一个则是个人喜好问题了。
我认为这不仅仅是个人喜好的问题,有客观的原因能表明:Intellij IDEA 肯定比Eclipse更好.
我不会去大量比较两者细微不同,例如插件与快捷键之类的。因为有一系列的blog是关于这些的,例如:[part 1] [part 2] [part 3]。我将会展示IDEA与Eclipse的一个最大的不同之处。通常IDEA和Eclipse的fans都不曾了解。前者已经习惯性的使用着它而不曾想象IDE缺少它会怎样,后者则没有使用它的习惯且难以想象有了它IDE能做得这么好。Eclipse的用户在把玩IDEA的时候通常都不会意识到这个不同点,因为他们习惯了以Eclipse模式工作。
为何我如此确信?
在开始说明之前,让我解释一下我是谁和为什么我的观点值得一听。
我使用Eclipse已经5年之久,我很了解它,我为它编写插件并真心地喜爱它。然后,我换了一个公司工作,并被强行转移到IDEA上开发,在这次“分手”后,我才最终意识到为什么IDEA更加敏锐。而如今我我已经使用IDEA一些年了,所以我能比较它们两者,因为我了解它们。
IDEA与Eclipse主要的不同
IDEA之所以更加敏锐的原因是:IDEA懂得上下文。这也是JetBrains员工命名IDEA为intelligent的原因。它真正的含义又是什么呢?IDEA检索你的整个项目,分析项目所有的内容,甚至构建语法树。幸亏有它,在任何时候无论你将鼠标放置在哪里,IDEA都知道你在哪里并知道在那能干什么。
仍旧不了然?别担心,在列举了以下几个例子后,一切就清楚了。
这种对上下文的理解表现在很多很多方式上,以下只是其中的一部分。
1、调试
通常在调试过程中,我们想要求一些表达式的值,在Eclipse中你需要选定这个表达式,选定整个表达式非常重要,否则你就没法求出它的值。然后,你可以使用Ctrl+Shift+I看到这个表达式的值。
使用IDEA你不需要选择任何东西,你只需要把光标移到你的表达式中然后按下Alt+F8。IDEA会很好的理解这个你可能需要的表达式,然后显示一个对话窗口,其中有一些它给出的建议参数变量。你也可以编辑并在对话框中立即将得到这个表达式的值。相当的方便!试过这个特性后,你就不会再想在Eclipse中调试了。
基本上在两个IDE上都能让你做同样的事,但是使用IDEA会更加简单和快速。对此我认真的表示,这个差异太大了:就像天堂跟人间一样。在一个小小的IDEA对话窗口中就提供了自动完成,语法高亮以及你需要的一切。
2、自动完成
自动完成使得IDE比notepad更加优秀,在这个领域能感知上下文的IDEA有了质的飞跃。例如,我们开始如下一行代码:
assertElement(By.id(errorMessage), vi
现在我们想要查找以vi开头的选项有哪些。
IDEA怎么做的呢?无需等待任何的按键,它马上就能理解assertElement需要一个Conditaion类的示例作为第二个参数,而在Condition类中有一个静态变量名叫visible。IDEA会直接建议这个唯一的有效选项。
然而,Eclipse会怎么做呢?唉,它不能理解上下文,它不知道光标所在处就是assertElement方法的第二个参数。因此当你按下“神圣”的Ctrl+Space时,Eclipse只会简单的显示全局中以vi字母开头的一切。
在一个美丽的弹出框中我看到了很多漂亮的高亮的格式规范的无用的信息.:(
3、重构
专业的程序员能够高效的使用IDE提供的重构功能。所有的现代IDE都提供许多印象深刻的重构功能。但是还是那句,IDEA的重构功能也很聪明智能。它们能读懂你需要什么,然后针对不同的情况提供给你最适合的解决方案。
例如,假设我们有一个assertErrorMessageIsHidden方法:
public void assertErrorMessageIsHidden() {
assertElement(By.id(errorMessage), Condition.visible);
}
我们以字符串“errorMessage”作为该方法的一个参数。
让我们先从IDEA开始,将光标放在任何字符串“errorMessage”上,按Ctrl+Alt+P(代表
文档评论(0)