liJ IDEA的快捷键是进行重构的利器,坊间盛传,完全使用IDEA快捷键重构的代码,是不需要写测试用例保护的

本文就分享一个使用IDEA抽取方法及创建新的class的方法

工具/原料

 
  • IntelliJ IDEA

方法/步骤

 
  1.  

    先来一段需要重构的代码:

    package chapter4;import java.util.ArrayList;

    import java.util.Arrays;

    import java.util.List;

    /**

    * Created by MyWorld on 2016/3/21.

    */

    public class RefactorOperate {

    public static void main(String[] args) {

    List<String> seasonList = new ArrayList<String>(Arrays.asList("Spring", "Summer", "Autumn", "Winter"));

    for (String season : seasonList) {

    System.out.println(season);

    }

    seasonList.add("Spring Rain");

    seasonList.add("vernal equinox");

    System.out.println("======================");

    for (String season : seasonList) {

    System.out.println(season);

    }

    }

    }

  2.  

    先把重复的代码中负责打印操作的代码提到一个方法中

    操作:

    如下截图所示,选中需要提取的代码

    同时Ctrl+Alt+m

    在弹出的对话框中,填入将要新生成的方法的名字,此处我们取的方法名是print

    最后点“确定”

  3.  

    现在马上就可以看到 IDEA的一个方便、强大的功能了

    从自动检测出类似代码,并提示出来

    "IDEA has detected 1 code fragment in this file that can be replaced with a call  to extracted method. would you like to review and replace it "

    此处我们选“Yes”

  4.  

    看看抽取方法后,现在代码的情况:

    package chapter4;import java.util.ArrayList;

    import java.util.Arrays;

    import java.util.List;

    /**

    * Created by MyWorld on 2016/3/21.

    */

    public class RefactorOperate {

    public static void main(String[] args) {

    List<String> seasonList = new ArrayList<String>(Arrays.asList("Spring", "Summer", "Autumn", "Winter"));

    print(seasonList);

    seasonList.add("Spring Rain");

    seasonList.add("vernal equinox");

    System.out.println("======================");

    print(seasonList);

    }    private static void print(List<String> seasonList) {

    for (String season : seasonList) {

    System.out.println(season);

    }

    }

    }

  5.  

    输入“StringUtils utils=new StringUtils();”

    IDEA肯定会提示编译不过。肯定不过了,因为Project中根本没有这个class

    把鼠标放在报错代码上,同时按“Alt + Enter”

    在弹出的菜单中选中“Create Class 'StringUtils'”

    然后回车(当然,使用鼠标直接点击也可以)

  6.  

    在弹出的“Create Class StringUtils”对话框中,确认下Destination Package的位置

    此处,我们就话在这个package下,直接点“OK”

    新Class StringUtils就创建完成了!!

你知道怎么用Idea抽取方法、创建class吗?的更多相关文章

  1. PHP mkdir 方法 创建 0777 权限的目录问题

    php 中使用 mkdir() 方法创建 0777 权限的目录: $path = './Logs/secondCheck/';if(!is_dir($path)){ mkdir($path, 0777 ...

  2. console.log的一个应用 -----用new方法生成一个img对象和document.createElement方法创建一个img对象的区别

    我用两种方法来生成img对象,第一种方法是用new方法,第二种方法是用document.createElement方法. var img1 = new Image(); var img2 = docu ...

  3. ArcGIS 网络分析[8.2] 资料2 使用IDatasetContainer2接口的CreateDataset方法创建网络数据集

    上节提及如何使用IDatasetContainer2接口访问到网络数据集,上例可以封装为一个方法. 这节就使用IDatasetContainer2接口(Geodatabase类库)的CreateDat ...

  4. Spring学习--静态工厂方法、实例工厂方法创建 Bean

    通过调用静态工厂方法创建 bean: 调用静态工厂方法创建 bean 是将对象创建的过程封装到静态方法中 , 当客户端需要对象时 , 只需要简单地调用静态方法 , 而不需要关心创建对象的细节. 要声明 ...

  5. 扩展Jquery方法创建LigerUI Grid

    ///** //*封装jquery get请求ajax //*author:叶明龙 //*time:2012-12-10 //*/ function getAjax(url, para, fn) { ...

  6. TP框架控制器和对应方法创建

    控制器和对应方法创建 控制器是MVC模式中的核心,TP默认有一个控制器:   Index控制器里面有一个操作方法:Index   我们在访问http://localhost:8080/Thinkphp ...

  7. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  8. Spring 工厂方法创建Bean 学习(三)

    1, 静态工厂方法创建Bean 调用静态工厂方法创建 Bean是将对象创建的过程封装到静态方法中. 当客户端需要对象时, 只需要简单地调用静态方法, 而不同关心创建对象的细节. 要声明通过静态方法创建 ...

  9. 【转载】C#的DataTable使用NewRow方法创建新表格行

    在C#的DataTable数据表格操作过程中,DataRow类表示DataTable中的数据行信息,但DataRow没有可以直接实例化的构造方法,在创建DataTable的新行的时候,不可直接使用Da ...

随机推荐

  1. java集合的实现细节--ArrayList和LinkedList

     ArrayList和LinkedList的实现差异 List代表一种线性表的数据结构,ArrayList则是一种顺序存储的线性表,ArrayList底层采用动态数组的形式保存每一个集合元素,Link ...

  2. WDA基础二:界面,元素介绍

    1.ELEMENTS: BUTTON  按钮 CAPTION  标题 DROPDOWN_BY_IDX   带序号的下拉 DROPDOWN_BY_KEY   带键值的下拉 FILE_UPLOAD    ...

  3. [codechef July Challenge 2017] IPC Trainers

    IPCTRAIN: 训练营教练题目描述本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 ...

  4. Qt Widgets——工具栏和状态栏

    本文主要涉及QSizeGrip ,QStatusBar ,QToolBar QToolBar 工具栏默认位于菜单栏下方,其上添加一个个action按钮,用于执行动作 绝大多谢以前都涉及过,只列出 QT ...

  5. 微信小程序 HMACSHA256 哈希加密

    下载CryptoJS, 增加红色的这句 module.exports = CryptoJS /* CryptoJS code.google.com/p/crypto-js (c) 2009-2012 ...

  6. 使用C#开发数据库应用程序

    第一章 用Hello ACCP.NET快速热身(一) 1-1.进入C#世界 a.第一个C#程序 (1)新建项目[项目:project] (2)生成解决方案[生成:build,解决方案:solution ...

  7. zabbix3.4.7实现企业微信告警,亲测可用!

    Zabbix 新版微信告警 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信 ...

  8. css制作tips提示框,气泡框,制作三角形

    有时候我们的页面会需要这样的一些提示框或者叫气泡框,运用css,我们可以实现这样的效果. 为了实现上面的效果,我们首先要理解如何制作三角形. 当我们给一个DIV不同颜色的边框的时候,我们可以得到下面的 ...

  9. Win10系列:JavaScript访问文件和文件夹

    在实际开发中经常会遇到访问文件的情况,因此学习与文件有关的操作对程序开发很有帮助,关于文件操作的一些基本技术,在前面章节中有专门基于C#语言的详细讲解,本节主要介绍如何使用HTML5和JavaScri ...

  10. spoj220

    题解: 后缀数组 把所有串连接起来 二分答案 代码: #include<cstdio> #include<cstring> #include<algorithm> ...