Inner Classes

Qual é a sua opinião a respeito de inner classes?

Exemplo em um jogo:

Classe 1:

public class Main{ private GameManager manager; private JFrame window; ... public void createWindow(){ ... window.addKeyListener(manager.new Listener()); } }
Classe 2:

public class GameManager{ ... class Listener implements KeyListener{ ... } }

Acho que são a solução complicada para um problema simples, que poderia ter sido resolvido com “delegates”. (Essa é a opinião do sr. Anders Hejslberg, que designou esse recurso de “delegates” no J++, mas não é a opinião do sr. James Gosling, que obviamente defende “inner classes” até a morte.)

Veja o que a Kathy Sierra diz no livro de certificação Java 5 no início do capítulo a respeito de inner classes:

Translation: