IntelliJ IDEA 2025.1 Help

将原始类型转换为泛型的重构

将原始类型转换为泛型 重构旨在将现有未使用泛型的代码转换为支持泛型的代码。 重构会分析现有代码,并为每个原始类型创建安全且一致的参数类型。

安装 Additional Java Refactorings 插件

此功能依赖于 Additional Java Refactorings 插件,您需要安装并启用。

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 Marketplace 选项卡,找到 Additional Java Refactorings 插件,然后点击 安装 (如果出现提示,请重启 IDE)。

运行“将原始类型转换为泛型”重构

  1. 选择代码转换的级别,可以是方法、类、包或目录,您可以在 ProjectStructure视图中进行选择,也可以将文本光标放置在编辑器中的类名或方法名上。 如果您想将泛型应用于单个代码片段,请在编辑器中选择一个。

  2. 从主菜单或上下文菜单中选择 重构 | 将原始类型转换为泛型

  3. 在打开的对话框中,定义 重构选项

    将原始类型转换为泛型
  4. 预览并应用更改

示例

IntelliJ IDEA 尝试生成尽可能从 Java 角度来看正确的代码。 换句话说,每个上下文引入了一些类型限制,重构生成不与现有上下文矛盾的最佳可能类型(在我们的例子中是 <String>)。

之前

之后

public void method() { List list = new LinkedList(); list.add("string"); }
public void method() { List<String> list = new LinkedList<String>(); list.add("string"); }

将原始类型转换为泛型重构

请使用此对话框指定 将原始类型转换为泛型 重构的选项。

条目

描述

删除废弃转换

如果选中此选项,IntelliJ IDEA 会分析参数类型转换是否因重构而改变。 如果生成的参数类型与过时的类型相似,则将删除强制转换语句。

离开对象形参化类型生

选中此选项以将那些包含 java.lang.Object 作为参数的对象转换为原始对象。

执行详尽的搜索

选中此选项以在所有节点中执行搜索。

Generify对象

选中此选项以将 java.lang.Object 对象转换为它们实际使用的类型。

产生通配符类型

选中此选项以尽可能生成通配符类型(如表达式 List<? extends String>)。

保存原始数组

如果选中此复选框,数组不会更改为带有参数化类型的数组。 否则,数组将被转换为参数化类型。

清除此复选框可能有风险,并导致代码无法编译。

最后修改日期: 2025年 4月 24日