IntelliJ IDEA 13.1.0 Web Help

Some features described here are available in Ultimate edition only.

The Type Migration refactoring allows you to automatically change a member type (e.g. from integer to string), and data flow dependent type entries, like method return types, local variables, parameters etc. across the entire project. It also lets automatically convert variable or method return type between arrays and collections. If any conflicts are found IntelliJ IDEA warns you about them.

Tip

This refactoring is also available from UML Class diagram.

Example

f: int -> String

Before After
               int 
               f;
void bar(int i) {}
void foo() {
    bar(f);
}
String f;
void bar(String i) {}
void foo() {
    bar(f);
}

I<String> -> I<Integer>

Before After
               interface I<T> {
    T foo(T t);
}

class A implements I<String> {
    String myString;
    public String foo(final String s) {
        if (s == null) {
            return 
               myString;
        }
        return s;
    }
}

               interface I<T> {
    T foo(T t);
}

class A implements I<Integer> {
    Integer myString;
    public Integer foo(final Integer s) {
        if (s == null) {
            return 
               myString;
        }
        return s;
    }
}

myResult: ArrayList<String> -> String[]

Before After
               public 
               class ResultContainer {
    private ArrayList<String> myResult;
    public String[] getResult() {
        return 
               myResult.toArray(new String[myResult.size()]);
    }
}
               public 
               class ResultContainer {
    private String[] myResult;
    public String[] getResult() {
        return 
               myResult;
    }
}
To change a type
  1. Place the caret on the type to be refactored in the editor.
  2. On main menu, choose Refactor | Type Migration, or press Ctrl+Shift+F6Ctrl+Shift+F6Ctrl+Shift+F6Ctrl+Shift+F6Ctrl+Shift+F6Ctrl+Shift+F6Ctrl+Shift+F6Ctrl+Shift+F6Ctrl+Shift+F6Shift Command F6Shift Command F6Shift Command F6.
  3. In the Type Migration dialog box, specify the new type and scope where to look for the usages.
  4. Click Preview and review the items that will be affected. If needed, exclude usages from refactoring. To do that, right-click usage in the Type Migration Preview and select Exclude. When done, click Migrate.

See Also

Reference:

Web Resources: