Reports anonymous classes.

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() {}
    }
  }