Intellij Idea使用教程汇总篇

问题:有时候一个方法里面嵌套了很多逻辑,想拆分为多个方法方便调用;或者一个方法复用性很高,这时,这个方法嵌套在局部方法里面肯定是不方便的,如何快速抽取出这个方法?

  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. Field[] declaredFields = clazz.getDeclaredFields();
  12. for (Field field : declaredFields) {
  13. String name = field.getName();
  14. Class c1 = field.getType();
  15. String type = c1.getName();
  16. }
  17. //------------------------------我即将抽取的------------------------//
  18. }
  19. }
public class Demo {
private static void getInfo(Object obj) {
Class<?> clazz = obj.getClass();
Method[] methods = clazz.getMethods();
for (Method method : methods) {
String name = method.getName();
Class<?> returnType = method.getReturnType();
Class<?>[] parameterTypes = method.getParameterTypes();
}
    //-----------------------------我即将抽取的-------------------------//
Field[] declaredFields = clazz.getDeclaredFields();
for (Field field : declaredFields) {
String name = field.getName();
Class c1 = field.getType();
String type = c1.getName();
}
//------------------------------我即将抽取的------------------------//
}

}

选中我即将抽取的代码,按快捷键Ctrl + Alt + M 即可,或者  鼠标右击 》Refactor 》Extract 》Method 出现如下

抽取后自动生成代码如下,后续此方法就可以方便的被调用了

  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. }  
public class Demo {

private static void getInfo(Object obj) {

Class<?> clazz = obj.getClass();

Method[] methods = clazz.getMethods();

for (Method method : methods) {

String name = method.getName();

Class<?> returnType = method.getReturnType();

Class<?>[] parameterTypes = method.getParameterTypes();

}
    //-----------------------------我即将抽取的-------------------------//
commonDeal(clazz);
//------------------------------我即将抽取的------------------------//
} private static void commonDeal(Class&lt;?&gt; clazz) {
Field[] declaredFields = clazz.getDeclaredFields();
for (Field field : declaredFields) {
String name = field.getName();
Class c1 = field.getType();
String type = c1.getName();
}
}

}

对应的还有变量的抽取、常量的抽取等,看下图,这是鼠标右击 》Refactor 》Extract 操作后出现的效果,里面包含很多的抽取:

intellij idea中快速抽取方法的更多相关文章

  1. IntelliJ IDEA中怎么查看方法说明?

    View→Quick Documentation 查看当前配置的快捷键(例如Ctrl + Q) 在光标所在的方法上按下快捷键就可以看到方法的说明 下图为在View菜单中查看当前配置的快捷键截图: 下图 ...

  2. Visual Studio 中快速创建方法 Generate a method in Visual Studio

    2020-04-04 https://docs.microsoft.com/en-us/visualstudio/ide/reference/generate-method?view=vs-2019 ...

  3. 如何在IntelliJ IDEA中快速配置Tomcat

    近来使用idea编写java代码的人越来越多,最关键的就是idea强大的代码提示功能,能极高的提升程序员的开发效率,但是毕竟各有所长,idea中tomcat的配置就没有eclipse那么轻松,这里简单 ...

  4. DELPHI 数据集在内存中快速查询方法

    1.Bookmark var p:pointer; procedure TForm1.Button1Click(Sender: TObject);//加个标签 begin   p:=cxGrid1DB ...

  5. linux中快速清空文件内容的几种方法

    这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的朋友可以参考下 $ : > filename $ > filename $ echo "" > f ...

  6. MySQL中快速复制数据表方法汇总

    本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: ...

  7. 在eclispe的类中快速打出main方法

    在java类中快速打出main方法有两种途径: 1. 在新建类时,在New Java Class窗口中,将public static void main ( String[ ] args ) 前面打上 ...

  8. IntelliJ IDEA 中自动生成 serialVersionUID 的方法

    as, idea plugin中搜如下关键字,并安装该插件: GenerateSerialVersionUID 如上图所示,创建一个类并实现Serializable接口,然后按alt+Enter键,即 ...

  9. 二十二、详述 IntelliJ IDEA 中恢复代码的方法

    在咱们正常开发项目的时候,难免遇到在开发过程中由于某种原因,想要将代码恢复到前一版本的情景.特别是在咱们删除了某些代码,想要恢复之前删除的代码的时候,了解这个在 IntelliJ IDEA 中恢复代码 ...

随机推荐

  1. 读 Real-Time Rendering 收获 - chapter 4. transform

    chapter 4. Transform p54 affine transform p57 all rotation matrices have a determinant of one and ar ...

  2. Servlet中文乱码原因 解决 Get 和 Post 和客户端

    一.Get方式的中文乱码 1) 使用如下页面表单内容: <form action="http://127.0.0.1:8080/day07/params" method=&q ...

  3. javascript 继承之拷贝,原型,类式

    // 拷贝继承,在子类内调用父类并修正this指向,再通过for in 拷贝父类的方法实现继承,具体实现如下代码 : function Tab(){//父类构造函数 this.name='aaa'; ...

  4. phpstudy创建新站点-默认打不开

    phpstudy中Apache中httpd.conf中如下语句前#要有 #Include conf/extra/httpd-vhosts.conf

  5. ansible搭建mysql主主模式

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)等优点,实现了批量系统配置.批量程序部署.批量运行命 ...

  6. Adobe Flex迷你教程 —Flex4全屏显示

    应用场景 1.播放器 我们经常看视频的时候,需要全屏显示,(在flex中这个视频初始化的时候是嵌入到html的iframe中). 2.监控 如下图所示,大多时候我们的监控用的是flex,而树形菜单和标 ...

  7. dva基本用法

    1. npm install -g dva-cli 全局安装dva.2. dva new myApp --demo 创建dva项目.3. cd myApp npm start 启动项目.4. 定义 m ...

  8. sshd修改监听端口

    vi /etc/sshd/sshd_config ListenAddress 0.0.0.0 #修改为 ListenAddress 192.168.0.1 #代表只监听192.168.0.1的SSH请 ...

  9. 什么是面向对象以及其意义,prototpye原型

    什么是面向对象: 使用对象时,只关注对象提供的功能,不关注其内部的细节 例如:jquery 什么是对象: 对象是一个整体对外提供一些操作,比如 收音机 面向对象编程OOP的特点: 1.抽象:把主要的特 ...

  10. 过Hard题目.周末

      # Title Editorial Acceptance Difficulty Frequency   . 65 Valid Number     12.6% Hard    . 126 Word ...