在 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&lt;String, String&gt; 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的主要内容,如果未能解决你的问题,请参考以下文章

c#中怎么将string转换成int型

C# 类型转换

如何在 spark sql 连接条件中将字符串数据类型转换为日期:to_date 不起作用并且转换抛出错误

类型转换

使用显式类型转换将十六进制整数转换为字符?

隐式/显式类型转换