Je n'imaginais pas rencontrer une syntaxe radicalement nouvelle en Java à ce stade, mais voilà, je viens de rencontrer quelque chose :
Le contexte exact et ce que le code ci-dessous devrait faire n'est pas pertinent - il est là juste pour donner une sorte de contexte.
J'essaie de créer synthétiquement un événement dans IT Mill Toolkit, j'ai donc écrit ce genre de ligne :
buttonClick(new Button.ClickEvent(button));
Mais, Eclipse me donne le message d'erreur suivant :
Aucune instance englobante du type Bouton n'est accessible. Il faut qualifier l'allocation avec une instance de type Button (par exemple, x.new A() où x est une instance de Button).
Lorsque je réécris la ligne ci-dessus comme suit, il ne se plaint plus :
buttonClick(button.new ClickEvent(button)); // button instanceof Button
Donc, ma question est : Que signifie exactement cette dernière syntaxe, et pourquoi le premier extrait ne fonctionne-t-il pas ? De quoi Java se plaint-il, et que fait-il dans la deuxième version ?
Informations générales : Les deux Button
y Button.ClickEvent
sont des classes publiques non abstraites.