intellij idea中快速抽取方法

Intellij Idea使用教程彙總篇html

問題:有時候一個方法裏面嵌套了不少邏輯,想拆分爲多個方法方便調用;或者一個方法複用性很高,這時,這個方法嵌套在局部方法裏面確定是不方便的,如何快速抽取出這個方法?java

  1. public class Demo {  
  2.     private static void getInfo(Object obj) {  
  3.         Class<?> clazz = obj.getClass();  
  4.         Method[] methods = clazz.getMethods();  
  5.         for (Method method : methods) {  
  6.             String name = method.getName();  
  7.             Class<?> returnType = method.getReturnType();  
  8.             Class<?>[] parameterTypes = method.getParameterTypes();  
  9.         }  
  10.   
  11.         //-----------------------------我即將抽取的-------------------------//  
  12.         Field[] declaredFields = clazz.getDeclaredFields();  
  13.         for (Field field : declaredFields) {  
  14.             String name = field.getName();  
  15.             Class c1 = field.getType();  
  16.             String type = c1.getName();  
  17.         }  
  18.         //------------------------------我即將抽取的------------------------//  
  19.     }  
  20.   
  21. }  

選中我即將抽取的代碼,按快捷鍵Ctrl + Alt + M 便可,或者  鼠標右擊 》Refactor 》Extract 》Method 出現以下

app

抽取後自動生成代碼以下,後續此方法就能夠方便的被調用了oop

  1. public class Demo {  
  2.     private static void getInfo(Object obj) {  
  3.         Class<?> clazz = obj.getClass();  
  4.         Method[] methods = clazz.getMethods();  
  5.         for (Method method : methods) {  
  6.             String name = method.getName();  
  7.             Class<?> returnType = method.getReturnType();  
  8.             Class<?>[] parameterTypes = method.getParameterTypes();  
  9.         }  
  10.   
  11.         //-----------------------------我即將抽取的-------------------------//  
  12.         commonDeal(clazz);  
  13.         //------------------------------我即將抽取的------------------------//  
  14.     }  
  15.   
  16.     private static void commonDeal(Class<?> clazz) {  
  17.         Field[] declaredFields = clazz.getDeclaredFields();  
  18.         for (Field field : declaredFields) {  
  19.             String name = field.getName();  
  20.             Class c1 = field.getType();  
  21.             String type = c1.getName();  
  22.         }  
  23.     }  
  24.   
  25. }  

對應的還有變量的抽取、常量的抽取等,看下圖,這是鼠標右擊 》Refactor 》Extract 操做後出現的效果,裏面包含不少的抽取:this

相關文章
相關標籤/搜索