Вот простой пример:Есть ли название для этой структуры кода?
private final MouseAdapter mouse = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
calculate();
}
};
Это поле уровня класса, поэтому называть это анонимный класс не кажется правильным. Ни одно из других имен или описаний на странице «Учебники Oracle» по адресу Nested Classes, похоже, не соответствовало.
Я предполагаю, что это что-то вдоль линий «одноместного Object», но у меня трудное время, даже описывая его, не говоря что-то вроде «уровня Класса Названных анонимного класса»
Для тех, не знакомы с Java и AWT, я делаю экземпляр класса, который не имеет методов работы для реализации интерфейса для прослушивания действий мыши. Мне нужен фактический экземпляр, поэтому я могу добавить его как несколько типов слушателей (колесо, движение и щелчок), но использовать один и тот же объект для управления. Однако сам вопрос не является специфичным для AWT.
Отлично. Я никогда раньше не делал анонимного класса вне метода, поэтому он чувствовал себя супер странным в Java, но нормальным в JS. Я пропустил эту деталь в документах. – Eben
Я выбрал это как ответ, потому что он очень непосредственно отвечает на мой вопрос и прекрасно указывает на то, на что я смотрел, но не читал достаточно правильно. Ответ @ kocko тоже очень хорош, и я бы хотел принять два ответа, так как вы оба заслуживаете этого. – Eben
Это прекрасно @Eben. Простого upvote достаточно :) –