Я не предполагал, что на этом этапе я больше столкнулся с радикально новым синтаксисом в Java, но вот, я просто что-то обнаружил:
Точный контекст и то, что должен сделать приведенный ниже код, довольно неуместен - он просто должен дать какой-то контекст.
Я пытаюсь синтетически создать событие в IT Mill Toolkit, поэтому я написал такую строку:
buttonClick(new Button.ClickEvent(button));
Но Eclipse сообщает мне следующее сообщение об ошибке:
Нет доступного экземпляра типа Button. Должен квалифицировать распределение с помощью экземпляра типа Button (например, x.new A(), где x является экземпляром Button).
Когда я переписываю строку выше следующим образом, она больше не жалуется:
buttonClick(button.new ClickEvent(button)); // button instanceof Button
Итак, мой вопрос: Что означает последний синтаксис, и почему не работает первый фрагмент? Что такое жалоба Java и что она делает во второй версии?
Фоновая информация: Оба Button
и Button.ClickEvent
являются не абстрактными общедоступными классами.