# Convert anonymous to inner

> **TL;DR**
> `Refactor | Convert Anonymous to Inner`

The Convert Anonymous to Inner refactoring allows you to convert an anonymous class into a named inner class.

Procedure:

1. Place the caret within the anonymous class to be refactored.

2. From the main menu or from the context menu of the selection, select `Refactor | Convert Anonymous To Inner`.

3. In the dialog that opens, specify the name for the new inner class and variables that will be used as parameters to the inner class constructor. You can also indicate whether you want to make your class static.

4. Click OK to create the inner class.

## Example

| Before | After |
| --- | --- |
|     ```JAVA public class Class {     public Interface method() {         final int i = 0;         return new Interface() {             public int publicMethod() {                 return i;             }         };     } } ```    |     ```JAVA public class Class {     public Interface method() {         final int i = 0;         return new MyInterfaceClass(i);     }      private static class MyInterfaceClass implements Interface {         private final int i;          public MyInterfaceClass(int i) {             this.i = i;         }          public int publicMethod() {             return i;         }     } } ```    |

## Convert anonymous to inner dialog

This dialog appears when you invoke the Convert anonymous to inner refactoring.

| Item | Description |
| --- | --- |
| Class name | Specify here the name for the new inner class. |
| Make class static | Use this option to make the new class static. |
| Constructor Parameters | In this area select the variables, that will be used as parameters to the inner class constructor.  |
| Move Up/Down | Use these buttons to reorder parameters. |

## See also

### Refactoring

[Code refactoring](refactoring-source-code.html)

