# 提取方法对话框

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

> **TL;DR**
> `重构 | 提取 | 方法`
>
>
>
> `Ctrl+Alt+M` (Windows), `⌘ ⌥ M` (macOS), `⌘ ⌥ M` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ M` (macOS System Shortcuts), `Ctrl+Alt+M` (XWin), `Ctrl+Alt+M` (GNOME), `Ctrl+Alt+M` (KDE), `Ctrl+Alt+M` (Emacs), `Ctrl+Alt+M` (Sublime Text), `⌘ ⌥ M` (Sublime Text (macOS)), `Ctrl+R, M` (Visual Studio), `⌘ R, M` (Visual Studio (macOS)), `Alt+Shift+M` (NetBeans), `Alt+Shift+M` (Eclipse), `⌘ ⌥ M` (Eclipse (macOS))

如需了解更多关于提取方法和查看代码示例的信息，请参阅 [提取方法](extract-method.html)部分。

|  条目  |  描述  |
| --- | --- |
|  名称  |  在此字段中，根据所选源代码指定要生成的函数或方法的名称。  |
|  可见性  |  在此区域，指定要生成的方法的可见性范围。  |
|  声明为 static  |     选中此复选框以创建静态方法。      > **Tip:** > 如果新方法不能声明为 static，或者反之，只能创建为 static 方法，则   声明静态  复选框将被禁用。    |
|  生成注解  |  此选项将推导的  `@Nullable` /  `@NotNull` 注释插入到参数和返回类型中。  |
|  声明 vararg  |  如果您想声明 varargs 而不是数组，请选择此选项。  |
|  折叠参数  |  选择此选项以折叠参数，例如，如果您有一个数组，如  `int[] a = new int[i]` ，并希望  `a[i]` 作为一个整体传递给新创建的方法。  |
|  提取链接构造函数  |  使用此选项可以从构造函数主体中提取链接构造函数，并用  `this`  替换原代码。  |
|  输出变量  |  此只读字段显示变量的名称，通过该变量，新方法/函数的输出将传递给调用方法/函数。 根据您在 [通过返回输出变量](#returnOutputVariablesThrough)区域中的选择，此变量将用于  return 语句 中，或将声明为新方法或函数的传引用参数。  |
|  通过以下方式返回输出变量  |     在此区域，指定新方法或函数将如何向调用者 [返回输出变量](http://php.net/manual/en/functions.returning-values.php)。        * 返回语句 - 选择此选项以按值返回输出变量。 如果 输出变量 只读字段显示了一个输出变量，它将被用作返回值。 如果选择输出多个变量，这些变量将作为数组返回。    * 通过引用传递的参数 - 选择此选项以通过引用返回输出变量。 IntelliJ IDEA 将生成没有返回语句的方法/函数。 相反，输出变量将被添加到方法/函数声明中的输入参数集合中。 这些变量的名称将以 & 符号开头 `&` 。     > **Note:** > 仅在 PHP 上下文中调用重构时，此区域才可用。    |
|  参数  |     在此区域，选择要传递给新方法/函数的参数。      > **Tip:** > 如果未选择对新方法功能至关重要的参数，IntelliJ IDEA 将无法继续执行重构。    |
|  上移/下移  |  使用这些按钮更改参数的顺序。  |
|  签名预览  |  在此只读字段中，查看新方法的声明。  |

## See also

### 过程

[提取方法](extract-method.html)

