Предположим, у меня есть класс Foo
, реализующий интерфейс, такой как MouseListener
. Интерфейс MouseListener
состоит из пяти методов, но я хочу только переопределить один из них (mouseClicked()
). Существует ли стандартный идиоматический способ форматирования других методов?Есть ли идиома в Java для пустых методов, которые существуют для удовлетворения интерфейса?
Моя склонность было написать следующее:
@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.
}
Я фанат, что делает его явным, что методы намеренно оставлена пустой, а не случайно вышло так, но я не в восторге от всего вертикального пространства отдали в основном ничего. Я также видел следующий формат:
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) {}
Я вообще в порядке с этим, и я понимаю намерение автора, но это становится действительно некрасиво, когда добавляется (recommended) @Override
аннотаций.
Я не очень опытный Java-кодер, поэтому я решил, что спрошу, существует ли конвенция. Мысли?
Вы знаете класс MouseAdapter, не так ли? http://java.sun.com/javase/6/docs/api/java/awt/event/MouseAdapter.html –