Search code examples
javaeclipseautomated-refactoring

Eclipse remove a static import


With eclipse i can easily transform the static invocation to

import java.util.Arrays;
import java.util.List;

public class StaticImport {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("hello", "world");
        System.out.println(list);
    }
}

to a static import:

import static java.util.Arrays.asList;

import java.util.List;

public class StaticImport {
    public static void main(String[] args) {
        List<String> list = asList("hello", "world");
        System.out.println(list);
    }
}

I put the cursor on the method name (asList) and press Ctrl-Shift-M (Add Import).

Now, for some refactoring reasons, i want to remove the static import and get back to the first code:

List<String> list = Arrays.asList("hello", "world");

Is there a shorcut quickly do that ?


Solution

  • You can't remove an (static) import statement with a shortcut, unless it's unused.

    So, first comment out the statement:

    //List<String> list = asList("hello", "world");
    

    Then, activate the shortcut for Organizing Import Statements (Ctrl + Shift + O) and the unused import statements will be automatically removed.

    Finally, uncomment the line you commented first and refactor it so it compiles:

    List<String> list = Arrays.asList("hello", "world");