Я не предполагал, что на этом этапе я столкнусь с принципиально новым синтаксисом в 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
являются неабстрактными публичными классами.