方法重构
编辑教程方法重构
调用提取方法重构时,IntelliJ IDEA 分析选定的代码块并检测作为所选代码片段的输入的变量以及为其输出的变量。
如果只有一个输出变量,则它将其用作提取方法的返回值。如果有多个输出变量,则可能不应用提取方法重构,并出现错误消息。
在这种情况下,允许提取方法工作有几种变通办法。例如,您可能会引入一个包含所有输出值的特殊数据类。
提取方法重构具有以下限制:
重构在自动模式下不使用多个输出值。在应用重构之前,您必须更改您的代码。 | |
---|---|
重构对于有条件地从包含方法返回的代码片段不起作用,并且不放在它的末尾。 |
Java 示例
重构前
public void method() {
int a=1;
int b=2;
int c=a+b;
int d=a+c;
public ArrayList method() {
String[] strings = {"a","b","c"};
ArrayList list = new ArrayList();
for (int i=0; i < strings.length; i++)
{list.add(strings[i]);}
return list;
重构后
public void method() {
int a=1;
int b=2;
int c=add(a,b);
int d=add(a,c);
}
...
private int add(int a, int b) {
return a+b;
}
public ArrayList method() {
String[] strings = {"a","ab","abc"};
ArrayList list=add(strings);
return list;
}
private ArrayList add(String[] strings) {
ArrayList list = new ArrayList();
for (int i=0; i < strings.length; i++)
{list.add(strings[i]);}
return list;
}
提取方法重构
若要提取方法,请按照下列步骤操作:
在编辑器中,选择要转换成方法或函数的代码块。 | |
---|---|
构成方法的代码片段不一定必须是一组语句。它也可能是代码中某处使用的表达式。 | |
在主菜单或选择的上下文菜单上,选择:重构丨 提取丨 方法或者按 Ctrl+Alt+M。 | |
在打开的 "提取方法" 对话框中,指定新函数的名称。 | |
要创建一个静态方法,请选中 "声明静态" 复选框。 | |
在 "参数" 区域中,请执行以下操作: | |
通过选择/清除相应的复选框来指定要作为方法参数传递的变量。 | |
如果某个参数被禁用,则将在提取的方法中创建一个具有初始值的相应类型的局部变量,以便您必须手动输入适当值的初始值设定项。 | |
通过双击相应的参数行并输入新名称来重命名所需的参数。 | |
在可见性区域中定义方法的可见性范围。 | |
在 "签名预览" 窗格中检查结果,然后单击 "确定" 创建方法。选定的代码片段将被方法调用替换。此外,IntelliJ IDEA 将建议替换在当前类中找到的任何类似的代码片段。 |
处理重复项
IntelliJ IDEA 检测到可能接受不同值作为参数的重复代码片段,并以差异查看器的格式显示以下建议:
如果单击 "接受签名更改" 按钮,所有遇到的重复项都将突出显示,IntelliJ IDEA 将要求您进行确认:
最后,在用方法调用替换所需的重复项之后,您将得到以下代码:
您也可以从重复的代码段中提取方法,IntelliJ IDEA 在重复分析过程中发现的。遇到的重复项显示在 "重复" 工具窗口中,您可以在其中尝试用方法调用替换它们。
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟