快捷键:
Ctrl + Alt + P (Windows/Linux上)
Cmd + Alt + P (OS X)
Android Studio 里抽取参数(Extract Parameter)的快捷方式。
菜单调用:
Menu → Refactor → Extract → Parameter。
描述:
将方法中的一个变量提取转换为方法的一个参数,生成一个新的方法。
原来的变量值放到方法调用的地方,作为传进来的参数。
还可以保留原来的方法,用重载的方式生成一个新的方法。
使用:
在写代码,有时需要将方法中的一个变量提取转换为方法的一个参数,就可以使用Ctrl + Alt + P (Windows/Linux上)快捷键。
看下图:
现在要把getErrorMessage方法中定义的变量errorCode提取为该方法的一个参数。
1.将光标定位到errorCode上。按Ctrl + Alt + P. 出现下图画面。
2.在红框中是将要抽取的参数名,这里系统自动给出的是errorCode, 和原变量名一样。如果需要,我们可以修改. 在图上还有一个CheckBox可以选,如果选择,则是表示,我们要用重载的方式生成一个新的方法(Delegate via overloading Method)。这里我们不选,只是要将errorCode变量抽取为参数,让原来的不带参数的getErrorMessage()变成带参数的getErrorMessage(String errorCode)的方法,所以直接按Enter。
从上图可以看到, 原来的getErrorMessage()方法变成了 getErrorMessage(String errorCode)。Android Studio将errorCode抽取为该方法的参数。
注意 :
原来的showMessage方法里的对getErrorMessage()的调用,Android Studio也自动为我们改为getErrorMessage(“101”)。 这样就保证了,修改了这个方法的定义后,所有对原方法的调用也都做相应的修改。
现在,再看一下用重载的方式抽取参数是什么样。这次我们将变量errorName也抽取为参数。
1.将光标定位到errorName上,按Ctrl + Alt + P。
这里可以直接点击Delegate via overloading method前面的CheckBox,也可以按 照屏幕上提示 - Press Ctrl+Alt+P to show dialog with more option, 继续按Ctrl + Alt + P” 。
这里我们按Ctrl + Alt + P。出现下面弹窗。
2.点击Delegate via overloading method前面的CheckBox。
3.点击Refactor键
可以看到,有一个新的可以传入errorCode和errorName的两个参数的getErrorMessage方法生成了。而刚才生成的只带一个errorCode的getErrorMessage方法继续保留了下来。而相应的调用代码也做了相应的改动。最原先的程序功能一点都没有改变!
动画演示:
总结
如果要将方法中的变量抽取为方法的参数,将光标定位到该变量,按Ctrl + Alt + P(Windows/Linux上) ,Cmd + Alt + P(OS X),然后给出参数名即可。可以根据需要用重载的方式生成一个新的方法,同时保留原来的方法。
更多Android Studio技巧
Android Studio 技巧之【Extract Constant】
Android Studio 技巧之【Extract Method】
Android Studio技巧之【Extract Field】
Android Studio技巧之快速抽取变量【Extract Variable】
Android Studio技巧之【Extract Resource】