J'ai deux interfaces, HasClickHandlers
et DoesFancyFeedback
. Ensuite, j'ai des objets d'interface utilisateur qui implémentent les deux interfaces - par exemple, un Button
qui implémente à la fois des gestionnaires de clic et des retours de fantaisie.Possibilité de spécifier plusieurs interfaces en Java
Dans mon code qui est déclaré Button
s, je ne veux pas dire en fait Button
parce que peut-être plus tard, je vais veux que ce soit, je ne sais pas, un Image
qui a cliquez sur les gestionnaires et fait des commentaires de fantaisie. Ainsi, au lieu d'être précis et dire quelque chose comme:
Button saveButton = aButtonIPassedIn;
saveButton.addClickHandler();
saveButton.doFancyFeedback();
Je veux dire,
{HasClickHandlers + DoesFancyFeedback} clickyFeedbackThing = aThingIPassedIn;
clickyFeedbackThing.addClickHandler();
clickyFeedbackThing.doFancyFeedback();
Je veux que le compilateur d'exiger que aThingIPassedIn
mettre en œuvre à la fois HasClickHandlers
etDoesFancyFeedback
.
Je pourrais créer une interface qui étend ces deux interfaces, et l'utiliser. Y a-t-il un moyen plus facile/moins verbeux?
Vous pouvez théoriquement le faire avec des génériques, je pense - placer une contrainte sur l'argument qu'il doit implémenter les deux interfaces. Cependant, cela fait un moment que j'ai utilisé des génériques Java, donc ma mémoire pourrait être un peu corrompue par les génériques .NET. – cdhowie
Des détails (hah) sur la façon d'accomplir ce serait génial! –