我有两个接口(interface),HasClickHandlers
和 DoesFancyFeedback
。然后,我有一些实现这两个接口(interface)的 UI 对象 - 例如,一个实现了这两个接口(interface)的 Button
具有点击处理程序,并且还执行奇特的反馈。
在我声明 Button
的代码中,我实际上不想说 Button
因为也许以后我会想要它,我不知道.一个 Image
,具有点击处理程序并提供精美的反馈。因此,与其具体地说,不如说:
Button saveButton = aButtonIPassedIn;
saveButton.addClickHandler();
saveButton.doFancyFeedback();
我想说,
{HasClickHandlers + DoesFancyFeedback} clickyFeedbackThing = aThingIPassedIn;
clickyFeedbackThing.addClickHandler();
clickyFeedbackThing.doFancyFeedback();
我希望编译器要求 aThingIPassedIn
实现 HasClickHandlers
和 DoesFancyFeedback
。
我可以创建一个扩展这两个接口(interface)的接口(interface),然后使用它。有没有更简单/更简洁的方法?
最佳答案
我不认为有更好的方法来做你想做的事。 我只是想建议您执行以下操作。您可以创建接受需要 2 个接口(interface)的参数的方法(我们称之为 foo):
<T extends HasClickHandlers & DoesFancyFeedback> void foo(T arg);
请注意两个接口(interface)之间的一个符号。
关于java - Java中指定多个接口(interface)的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4288942/