Occasionally replacing anonymous classes with inner classes can lead to more readable and maintainable code. Some code standards discourage anonymous classes.
Example:
class Example {
public static void main(String[] args) {
new Thread() {
public void run() {
work()
}
private void work() {}
}.start();
}
}
After the quick-fix is applied:
class Example {
public static void main(String[] args) {
new MyThread().start();
}
private static class MyThread extends Thread {
public void run() {
work();
}
private void work() {}
}
}