Diciamo che ho una classe Foo
che implementa un'interfaccia come MouseListener
. L'interfaccia MouseListener
è composta da cinque metodi, ma desidero sovrascrivere solo uno di essi (mouseClicked()
). Esiste un modo standard e idiomatico per formattare gli altri metodi?Esiste un idioma in Java per i metodi vuoti che esistono per soddisfare un'interfaccia?
La mia inclinazione è stato quello di scrivere il seguente:
@Override
public void mouseClicked(MouseEvent e) {
// (...) <-- actual code here
}
@Override
public void mouseEntered(MouseEvent e) {
// Do nothing. Exists to satisfy MouseListener interface.
}
@Override
public void mouseExited(MouseEvent e) {
// Do nothing. Exists to satisfy MouseListener interface.
}
@Override
public void mousePressed(MouseEvent e) {
// Do nothing. Exists to satisfy MouseListener interface.
}
@Override
public void mouseReleased(MouseEvent e) {
// Do nothing. Exists to satisfy MouseListener interface.
}
Io sono un fan di rendere esplicito che i metodi sono intenzionalmente vuota piuttosto che accidentalmente lasciato così, ma io non sono pazzo per tutto lo spazio verticale rinunciato praticamente a nulla. Ho visto anche il seguente formato:
public void mouseClicked(MouseEvent e) {
// (...) <-- actual code here
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
Sono generalmente OK con questo e capisco l'intento dell'autore, ma si fa veramente brutto quando vengono aggiunti i (recommended) @Override
annotazioni.
Non sono un codificatore Java particolarmente esperto, quindi ho pensato di chiedere se c'era una convenzione. Pensieri?
Sei a conoscenza della classe MouseAdapter, giusto? http://java.sun.com/javase/6/docs/api/java/awt/event/MouseAdapter.html –