Java: Classes anonymes

A la place de :

public class SimpleExample extends JPanel {
  JButton button = new JButton("Hello, world");
  private class ButtonClick
                  implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      System.out.println("Hello, world!");
    }
  }
  ...
  public SimpleExample() {
    button.addActionListener(new ButtonClick());
    add(button);
    ...
  }
  ...
}
 
on peut ecrire:
 
public class SimpleExample extends JPanel {
  JButton button = new JButton("Hello, world");
  ...
  public SimpleExample() {
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        System.out.println("Hello, world!");
      }
    });
    add(button);
    ...
  }
  ...
}
 
 
On a gagne du temps : pas besoin de trouver un nom de classe.
On a peut etre par contre perdu en clarte de codage.