Tengo dos interfaces, HasClickHandlers
y DoesFancyFeedback
. Luego, tengo algunos objetos UI que implementan ambas interfaces, por ejemplo, un Button
que implementa tanto manejadores de clics como retroalimentación.Forma de especificar múltiples interfaces en Java
En mi código que se declara Button
s, no quiero decir que en realidad Button
porque a lo mejor más adelante voy quiero que sea, no sé, un Image
que tiene haga clic manipuladores y hace retroalimentación de fantasía. Así que en lugar de ser específico y diciendo algo como:
Button saveButton = aButtonIPassedIn;
saveButton.addClickHandler();
saveButton.doFancyFeedback();
quiero decir,
{HasClickHandlers + DoesFancyFeedback} clickyFeedbackThing = aThingIPassedIn;
clickyFeedbackThing.addClickHandler();
clickyFeedbackThing.doFancyFeedback();
Quiero que el compilador requiere que aThingIPassedIn
implementar tanto HasClickHandlers
y DoesFancyFeedback
.
Podría crear una interfaz que extienda esas dos interfaces, y usar eso. ¿Hay alguna manera más fácil/menos detallada?
En teoría, se puede hacer esto con genéricos, creo - impone una restricción al argumento de que debe implementar ambas interfaces. Sin embargo, hace mucho tiempo que no uso genéricos Java, por lo que mi memoria podría estar un poco contaminada por los genéricos .NET. – cdhowie
¡Cualquier información específica (hah) sobre cómo lograr esto sería genial! –