在 IDEA 中将显式类型转换为 var
Posted
技术标签:
【中文标题】在 IDEA 中将显式类型转换为 var【英文标题】:Convert explicit type to var in IDEA 【发布时间】:2018-09-09 05:36:58 【问题描述】:我有一个包含以下代码的 Java 10 项目:
Map<String, String> map = method();
当我将光标放在Map...
上并按Alt+Enter
时,应该有一个选项“用var
替换显式类型”。但是,我的菜单中缺少此选项。
如何启用此选项?我应该清理一些缓存吗?
我正在使用 IDEA 2018.1.1 EAP。
【问题讨论】:
这纯粹是推测,但声明+从方法返回值赋值的情况通常倾向于属于类型推断的“对读者不明显”类别,因此 IDE 可能不提供。这可能是可配置的(如果不是,您可能应该将此作为反馈提供给 Jetbrains)。 你的method()
签名是什么?尝试更简单的方法,例如 int x = 5
。项目设置中的语言级别是否设置为 10?
@TagirValeev Map<String, String> method()
。 int x = 5
没有帮助。语言级别为 10(如果我手动输入,var
正在工作)。
我似乎无法在 2018.1 上重现此问题。我假设您的代码在本地范围内?
此外,我赞同@JacobG. 的评论,确认我使用的是 2018.1 CE,这让我可以选择Replace explicit type with 'var'
。那么他们的更新可能是一个错误?
【参考方案1】:
在 IntelliJ IDEA 2021.3 中,当自动完成或使用 ⌘ + ⌥ + v 提取变量时,旁边有一个齿轮图标到生成的变量。
单击齿轮或使用此快捷方式 ⌥ + ⇧ + o 将弹出一个允许定义此变量所需行为的弹出窗口提取和下一个。
使这些快捷键适应 IntelliJ 中的活动键映射。
【讨论】:
【参考方案2】:Java | Java language level migration aids | Java 10 | Local variable type can be omitted
检查提供了“用 'var' 替换显式类型”快速修复。请检查您是否在设置中启用了此检查。如果您启用了“默认禁用新检查”设置,它不会自动启用。
【讨论】:
谢谢。这启用了快速修复。我还将检查的严重性从“警告”更改为“不突出显示,仅修复”以避免对每个变量声明进行不必要的突出显示。以上是关于在 IDEA 中将显式类型转换为 var的主要内容,如果未能解决你的问题,请参考以下文章