IntelliJ IDEA 2018.1版本Java 10 'var'无代码补全问题咨询
解决IntelliJ IDEA 2018.1中Java 10
var补全被VarHandle覆盖的问题 我之前也碰到过这个闹心的小bug!明明项目的JDK版本和语言级别都设成10了,一敲var就自动补成全列表首位的VarHandle,得撤销半天才能回到var。试试下面这几个实用的解决办法:
调整代码补全排序规则
这是最直接的解决方式:- 打开IDE设置(快捷键
Ctrl+Alt+S,Mac用户是Cmd+,) - 导航到
Editor > General > Code Completion - 找到
Autopopup code completion区域,勾选Sort lookup items lexicographically(按字典序排序),这样var就会因为字母顺序排在VarHandle前面 - 同时可以开启
Prefer shorter names选项,让短名称优先显示,进一步确保var出现在补全列表的最前面
- 打开IDE设置(快捷键
自定义Live Template快速插入
var
如果排序调整没用,咱们可以自己做个快捷模板:- 进入
Settings > Editor > Live Templates - 点击右上角的
+,先新建一个模板组(比如命名为Java10Features) - 选中这个新组,再点击
+选择Live Template - 设置
Abbreviation为var,Template text也填var,然后在Applicable in里选择Java > Statement - 保存后,输入
var再按Tab就能直接插入var,完全不会被自动补全干扰
- 进入
检查并更新IDE补丁
IntelliJ 2018.1对Java 10的支持初期可能存在一些小问题,你可以去Settings > Appearance & Behavior > System Settings > Updates里检查有没有可用的补丁更新,安装后重启IDE,说不定就能修复这个补全异常临时应急方案
要是暂时不想折腾设置,输入var时一旦弹出补全列表,立刻按Esc关闭补全弹窗,就能保留你输入的var了
额外提醒:虽然你已经确认了项目全局的JDK和语言级别,但别忘了检查模块级别的配置——右键模块选择
Open Module Settings,在Project Settings > Modules里确认每个模块的Language level也设置为10,避免单个模块拖后腿
内容的提问来源于stack exchange,提问作者Grant Howard




