提取/引入变量
最后修改时间:2023 年 9 月 15 日如果您遇到难以理解的表达式或在代码中的多个位置重复的表达式,提取变量重构可以帮助您处理这些问题,将此类表达式的结果或其部分放入不太复杂的单独变量中并且更容易理解。另外,它还减少了代码重复。CtrlAlt0V
从 Java 1.8 及更高版本开始,IntelliJ IDEA 还允许您提取函数类型变量。
如果您的 Java 版本支持模式匹配(Java 14 预览版或更高版本)并且您在检查下提取强制转换表达式instanceof
,则 IntelliJ IDEA 可能会在该检查中引入模式变量instanceof
而不是普通的局部变量。此外,从 Java 14 版本开始,您可以内联模式变量。在这种情况下,所有出现的情况都将替换为旧式强制转换表达式。
您可以使用引入变量重构将可变参数提取到新的切片变量中。
在编辑器中,选择要提取的表达式或其部分。您还可以将插入符号放在表达式中,在这种情况下,IntelliJ IDEA 会为您提供潜在代码选择的列表。
按或转到重构 | 摘录/介绍 | 多变的。CtrlAlt0V
选择弹出窗口中建议的名称或输入您自己的名称并按。Enter
如果 IntelliJ IDEA 找到多个匹配项,它允许您指定一个范围并仅提取找到的匹配项的一部分,而不是全部。IntelliJ IDEA 还显示您可以用来配置更多选项。
您还可以将要提取的变量声明为
final
.如果要将现有变量重新分配给新变量,请按。如果您有多个现有变量,IntelliJ IDEA 会显示一个列表以供选择。CtrlAlt0V
您可以按更改变量的类型。ShiftTab
如果在“设置”对话框( ) 的“代码编辑”页面上的“重构”区域中选择“在模式对话框中重构”选项,IntelliJ IDEA 将打开“提取变量”对话框以进行此重构。CtrlAlt0S
例子
让我们提取anotherClass.inValue()
整个代码中出现两次的变量并为其命名number
。
前 | 后 |
---|---|
|
|
前 | 后 |
---|---|
|
|
此重构为 Java 1.8 及更高版本创建了函数表达式,为旧版本的 Java 创建了匿名类。
选择代码片段,在此示例中,选择方法的参数
println
。在主菜单中,选择“重构”|“重构”。摘录/介绍 | 函数变量。
IntelliJ IDEA 打开“提取函数变量”对话框。
或者,从编辑器的上下文菜单中,选择Refactor | 重构它 ,并选择Functional Variable。CtrlAltShift0T
当所选代码依赖于实例字段时(如示例所示),将出现“将字段作为参数传递”复选框,您可以在字段位置传递参数。
但是,例如,如果您选择的代码片段取决于任何局部变量或参数
相应的条目将出现在列表中。
当您取消选择对话框中的参数之一时,将使用相应的本地值。
配置您的选项并单击“确定”。从弹出窗口中选择适用的功能接口。
如果您不想使用列表中建议的名称,则可以根据需要更改提取的变量的名称。
IntelliJ IDEA 创建您可以进一步使用的 lambda。
提示
功能参数重构也是可用的。
提示
例子
前 | 后 |
---|---|
|
|
感谢您的反馈意见!