intellij的代码完成技巧.docx
- 文档编号:28240242
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:12
- 大小:877.34KB
intellij的代码完成技巧.docx
《intellij的代码完成技巧.docx》由会员分享,可在线阅读,更多相关《intellij的代码完成技巧.docx(12页珍藏版)》请在冰豆网上搜索。
intellij的代码完成技巧
在这篇文章中,我想向您展示IntelliJIDEA中最棒的20个代码自动完成的特性,可让Java编码变得更加高效。
对任何集成开发环境来说,代码的自动完成都是最最重要的一项功能,它根据你输入的内容进行预判并帮你自动完成你想输入的代码,有时候甚至都不知道自己想要输入什么,例如一些类名、成员、方法或者是其他方面的内容。
IntelliJIDEA中的代码自动完成的功能之所以能让我如此印象深刻,原因是IDEA真的理解你的代码以及你当前所在的上下文。
接下来我们将这些最重要的特性进行简单的说明,这些特性让IDEA显示出比其他IDE更棒的表现。
即刻完成Instantcompletion
第一个也是最吸引我的就是“即刻完成”特性,不同于其他IDE,IDEA可在任意地方提供这个功能,而不只是当你要访问某个类的成员时。
只需要输入单词的首字母,IntelliJIDEA就会立即给出最相关的、最适合此处代码编辑需要的选项共你选择。
想要了解“即刻完成”是多么的有效,你可以浏览这个 演示视频.
类型感知的自动完成Type-awarecompletion
另一个特性同样打破了常规的代码自动完成的方法,称为:
智能自动完成。
你可能已经知道,IDEA中包含不止一种自动完成的功能,包括 基本自动完成⌘Space 和 智能自动完成⌘⇧Space.
当你呼出 智能自动完成 时,它会将建议列表中的不适用的条目过滤掉,只显示可用的类、变量、属性或者方法,这个提升了性能而且可以避免不必要的错误,如果你试用下这个功能,你肯定会时刻想到它。
静态属性和方法Staticfieldsandmethods
就如同刚才我说的,IDEA一直走在你的想法之前。
如果你不记得一些静态成员的类名,你只需要开始输入静态成员的名称,然后调用两次“自动完成”,IDEA会给你提供正确的可供选择的列表,甚至是通过静态import进来的方法,如果你调用 Intentionaction⌥⏎ 的话.
再一次说明,如果你使用 智能自动完成,它将只提供可正确使用的选项。
链式自动完成Chaincompletion
接下来的一个可让你更多的提升编码效率的自动完成特性,名为 链式自动完成(Chaincompletion).如果你需要输入这样的调用方法getModule().getProject(),只需要使用两次 Smartcompletion 即可。
这种情况下IDEA将扫描变量、属性和方法,以及在当前上下文中的可见性,并为你提供可用的选择。
你可能知道EclipseJuno有一个名为CodeRecommenders的插件,这是一个相当有意思的插件提供了这里说到的功能,但它的工作方式完全不同,只提供EclipseSDKAPI类中的建议,而IDEA为你提供你代码中所有类的自动完成建议。
数据流分析Dataflowanalysis
IntelliJIDEA被称为是最智能的JavaIDE的原因是,IDEA提供的各种功能都是基于对你代码分析的结果,数据流分析就是其中一项。
IDEA分析数据流以便猜测运行环境中的变量类型,并提供基于这个类型的自动完成以及自动增加类的强制类型转换。
常量自动完成Constantscompletion
很多API使用Java的原始类型而不是枚举类型来定义常量,IDEA能分析出项目中的这些常量,并在自动完成的建议列表中提供选择,快速输入。
父类自动完成Supercompletion
你可能已经注意到了,要调用一个有很多参数的父类构造函数挺烦人,而IDEA能理解你想要的并提供建议列表供选择。
语句自动完成Statementscompletion
IntelliJIDEA另外一个智能的特性就是 自动完成语句Completestatement⌘⇧⏎,可以帮你完成正在输入的语句的剩余部分,自动增加漏掉的大括号小括号和必要的格式化处理。
你可能认为这是一个很小的特性,但你会很惊奇的发现当你习惯后,它节省你很多时间。
想试试这个特性可在代码中尝试输入if然后按 ⌘⇧⏎.你也可以在从建议列表中选择的时候使用。
参数信息Parameterinfo
我相信大多数的IDE在你调用某个方法或者构造函数时都提供了参数的建议,然后如何提供的也是非常重要。
IntelliJIDEA会显示每个重载方法或者构造函数的参数信息,并高亮其中最佳匹配的参数类型。
这帮你根据输入和期望的内容来选择合适的方法。
你也可以通过⌘P来显示参数信息。
快速定义Quickdefinition
另外一个你可能不知道的特性就是 快速定义Quickdefinition⌘⇧I.它会弹窗显示建议列表中的方法定义的内容,更多的时候,方法的定义比文档更有用,特别是你不确定要使用哪个方法时。
从自动完成中排除Excludefromcompletion
我肯定每个人都至少会碰到一次这种情形,你从来不用的某个反复总是反复的出现在自动建议列表中。
例如com.sun或者是java.awt包。
IntelliJIDEA可帮你排除掉这些选项,只需要在要排除的选项中调用 Intention⌥⏎ 并确认,你也可以在Settings 中重新找回这些信息。
其他语言注入Injectedlanguages
接下来的这个就不管是代码自动完成那么简单,这个功能完全可以开一篇新的文章详细介绍,但这里只介绍它跟代码自动完成有关的部分。
其他语言注入Languageinjection 是IntelliJIDEA带来的高级代码助手,可对Java代码中字符串的表达式进行自动完成。
这些表达式可以是SQL,JPQL,XPathexpression,HTML,CSS,JavaScript片段等任何语言。
在IntelliJIDEA提供这些表达式的自动完成功能前,你必须指定对应的语言,你可在字符串上调用 Intentionaction⌥⏎ 来设置,然后方可使用。
例如你在IDEA中定义了一个数据源,你将可使用基于表名的SQL表达式的自动完成,该IDE会分析项目中所有的文件并提供所支持语言的高级自动完成功能。
使用Tab键的自动完成CompletionwithTab
另外一个特性就是 СompletionwithTab,也就是使用Tab键来实现自动完成,当你选择建议列表中的某个条目后点击⇥,选中的内容将会覆盖光标标识符,而不是插入。
这在编辑如文件名这样的标识符片段时是很有用的。
否定布尔值结果Negatingbooleanresults
并不是所有人都知道,当你从建议列表中使用!
来选择一个布尔值的选项时,IntelliJIDEA会自动添加所选项的的非值(例如本来是true的变成false)。
中间匹配Middlematching
另外一个高效的方法就是 中间匹配Middlematching.意思是当你在刚开始要输入某个标识符时,IntelliJIDEA就会为你提供可供选择的建议列表,这个特性能显著提升编码效率,特别是当你只记住某个名称的一部分时。
大小写敏感设置Casesensitivitysettings
正如你可能已经知道的,代码完成常用的方法就是使用驼峰法则来根据您的输入去匹配相应的类名。
虽然你需要输入至少一个大小字母来给IDE一些线索提示。
而IntelliJIDEA改进了这个法则,它不要求一定是大小字母,也可以是小写的,也就是说你没必要在每次使用这个功能时按⇧
默认IntelliJIDEA对大小写是敏感的,你可以在 Settings 修改此项设置。
资源属性(properties)、文件名和资源的自动完成
IDEA还可判断当前正在使用一些加载资源的方法,并给出可供选择的资源列表。
一些在非Java文件中的类名自动完成Classnamecompletioninnon-Javafiles
IntelliJIDEA同样还提供一些非Java文件,如XML配置文件中的类名自动完成。
其他地方的自动完成Completioninotherplaces
另外一个你在别的IDE中很难见过的自动完成功能是,它不只是在代码编辑器中,还可用在调试器、表达式模拟、监视、文件选择器、搜索输入等等诸多地方使用。
表达式评估和监视工具中的自动完成这个功能是非常有价值的。
总结
我希望这篇文章能帮你更好的理解IntelliJIDEA的代码自动完成特性,并从中受益。
你可以通过 Help → ProductivityGuide 来了解更多的自动完成的类型以及IDEA已经帮你节省了多少时间(这个有点意思)
英文原文,OSCHINA 原创翻译
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- intellij 代码 完成 技巧