IDEA代码重构

重构

重构的目的: 提高代码的可读性、可维护性、可扩展性和性能。

重命名元素

重命名类

当我们进行重命名操作的时候可以看到第六行存在一个R(rename),点击后就会弹出所偶有引用,这样可以避免我们在修改后存在遗漏引用处未修改。

我们可以通过shift+F6 (windows/linux),F6(macos)来调用重命名重构,idea会将类、方法、变量建议替代名称,你可以在推荐的列表中选择其一。

在我们的实体类中使用shift+F6对属性进行修改,IntelliJ IDEA 会检测此字段是否用于 gettersetter 方法,并询问我们是否更新。它还会更新该字段在方法参数名称中的用法。

更改签名

在我们的接口方法中,当我们新增一个参数的时候,比如一个int类型的count,点击R可以对方法新增参数给予默认值。

修改类签名

java 复制代码
public class MyTest {
    int count = 0;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public static void main(String[] args) {
        MyTest test = new MyTest();
        System.out.println(test.getCount());
    }
}

Ctrl+F6 来修改类签名。 我们向其添加两个通用参数:一个名为 K,默认值 Integer;一个名为 V,默认值 String。 重构类后,MyTest的用法将改变。

改变后如下:

java 复制代码
public class MyTest<K, V> {
    int count = 0;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public static void main(String[] args) {
        MyTest<Integer, String> test = new MyTest<Integer, String>();
        System.out.println(test.getCount());
    }
}

提取方法

我们可以在 macOS 上使用快捷键 ⌥⌘M ,或者在 Windows/Linux 上使用 Ctrl+Alt+M 将这段代码提取到另一方法。也可以选中代码后alt+Enter 选中后回车进行方法的提取

内联方法

选中抽取的方法后,我们可以在 macOS 上使用快捷键 ⌥⌘N ,或者在 Windows/Linux 上使用 Ctrl+Alt+N 来内联刚刚创建的方法 manipulateStack。 我们可以内联方法内容然后删除方法,也可以保留方法。 在此示例中,我们删除了方法。

勾选移除后确认就可以了,可以理解为内联是提取方法重构的逆转,往往用来移除不必要的重定向,或者内联后重新选择提取部分进行提取重构。

引入常量

在开发中,通常避免使用魔法值。。 我们可以在 macOS 上使用快捷键 ⌥⌘C ,或者在 Windows/Linux 上使用 Ctrl+Alt+C 将这个值提取到常量。

引入字段

除了将其定义为常量,您还可以在 macOS 上使用 ⌥⌘F ,或者在 Windows/Linux 上使用 Ctrl+Alt+F 来引入字段存储这些值,以便它们在不同实例中拥有不同值。

提取参数

java 复制代码
    // Arrays.asList(1,2,3,4)提取为getItemsList方法参数前
    public List<Integer> getItemsList() {
        return   Arrays.asList(1,2,3,4).subList(fromIndex, toIndex);
    }
    // ctrl+alt+p 进行参数提取    
    public List<Integer> getItemsList(List<Integer> integers) {
      return   integers.subList(fromIndex, toIndex);
    }

引入变量

java 复制代码
          // 不使用引用变量前
            int a = 1,b=2,c=3;
            if (a>b&&c>b){
                return;
            }
            
            // ctrl+alt+v引入新变量
            final boolean aUpperb = a > b;
            final boolean cUpperb = c > b;
            if (aUpperb && cUpperb){
                return ;
            }

安全删除

如果您不想再在项目中使用某个文件或符号,您应该把它安全删除

选择要删除的文件或类,然后使用 ⌘⌦ ,或者在 Windows/Linux 上使用 Alt+Delete。 IntelliJ IDEA 在确保资源可被安全删除之后才会将其删除。

相关推荐
码农小白AI25 分钟前
从分段审核到一体化闭环:AI 报告审核如何用 IACheck 重构仪器校准与期间核查流程
人工智能·重构
一切皆是因缘际会1 天前
底层重构与价值破壁人工智能产业变革
人工智能·安全·重构·系统架构
x-cmd1 天前
[260531] OpenClaw 五月月报:模型接入大爆发、安全重构、手机端终于能当主控台用了 [特殊字符]
安全·ai·智能手机·重构·x-cmd·openclaw
MemoriKu2 天前
【端侧 AI 部署】MobileCLIP 导出 ONNX/TFLite 并发布到 Hugging Face 的完整实践
大数据·人工智能·elasticsearch·搜索引擎·重构·开源
一切皆是因缘际会2 天前
人工智能价值重构与发展破局
人工智能·百度·ai·重构
搜狐技术产品小编20233 天前
破局与重构:纯端侧 Android 自动化引擎的尝试与未来推演
android·运维·重构·自动化
jkyy20143 天前
大模型重构饮食健康服务链路:多维技术赋能膳食管理智能化升级
大数据·人工智能·信息可视化·重构·健康医疗
科济管线制药IPD咨询3 天前
IPD价值量化与商业闭环(1):IPD价值如何“可衡量”?从模糊定性到精准定量的逻辑重构与路径设计
重构
2601_956414143 天前
2026多账号防关联底层逻辑重构:主流指纹浏览器技术架构与高并发横测
重构·架构
QYR-分析4 天前
智能化重构仓储物流:仓储人形机器人行业全景解析
人工智能·重构·机器人