
# 将原始类型转换为泛型
此重构允许为每个原始类型创建安全且一致的参数类型，将不使用的泛型代码转换为泛型感知代码。
#### 执行重构
1. 选择要应用重构的实体。
2. 单击右键展示上下文菜单，选择**"重构 \> 将原始类型转换为泛型"**。
3. 在打开的**"将原始类型转换为泛型"** 对话框中，提供重构选项。
   
   - **"删除过时的转换"**：如果选中，CodeArts IDE将分析参数强制转换案例是否会被重构而更改。如果生成的参数类型与过期的参数类型相似，则将删除强制转换语句。
   
   - **"保留原始数组"**：如果选中，数组不会更改为具有参数化类型的数组。否则，数组将转换为参数化类型。清除此复选框可能会有风险，并导致无法编译的代码。
   
   - **"保留Object参数化类型为原始类型"** ： 如果选择了具有**java.lang.Object**作为参数的对象，它们将被设置为原始类型。
   
   - **"执行详尽搜索"**： 如果选中，则在所有节点上执行搜索。
   
   - **"泛型化对象"** ： 如果选中，**java.lang.Object**对象将转换为它们实际使用的类型。
   
   - **"生成通配符类型"：** 如果选中此选项，则尽可能生成通配符类型（即**List\<? extends String\>**等表达式）。
   
   
   图1将原始类型转换为泛型   
   ![](https://support.huaweicloud.com/usermanual-codeartside/zh-cn_image_0000002343706310.png)
   
   
4. 单击**"重构"**以应用重构。
 
#### 示例
例如，生成**List** 和**LinkedList**类型。
**重构前**
"com\\refactoring\\source\\ConvertTypes.java"文件内容如下：
```
package com.refactoring.source;
import java.util.LinkedList;
import java.util.List;
public class ConvertTypes {
    public void method() {
        List list = new LinkedList();
        list.add("string");
    }
}
```
**重构后**
"com\\refactoring\\source\\ConvertTypes.java"文件内容如下：
```
package com.refactoring.source;
import java.util.LinkedList;
import java.util.List;
public class ConvertTypes {
    public void method() {
        List<String> list = new LinkedList<String>();
        list.add("string");
    }
}
```
