当前位置: 首页 > 面试题库 >

在Java中指定多个接口的方法

张高澹
2023-03-14
问题内容

我有两个接口,HasClickHandlersDoesFancyFeedback。然后,我有一些实现两个接口的UI对象-
例如,一个Button实现既有单击处理程序又有花哨的反馈的UI对象

在声明Buttons的代码中,我实际上不想说什么,Button因为也许以后我希望它成为一个Image具有单击处理程序并提供精美反馈的对象。因此,与其说具体一点,不如说:

Button saveButton = aButtonIPassedIn;
saveButton.addClickHandler();
saveButton.doFancyFeedback();

我想说,

{HasClickHandlers + DoesFancyFeedback} clickyFeedbackThing = aThingIPassedIn;
clickyFeedbackThing.addClickHandler();
clickyFeedbackThing.doFancyFeedback();

我希望编译器要求同时aThingIPassedIn实现HasClickHandlers DoesFancyFeedback

我可以 创建一个扩展这两个接口的接口 ,并使用它。有没有更简单/更省力的方法?


问题答案:

我认为没有更好的方法来做您想要的事情。我只想建议您执行以下操作。您可以创建接受需要2个接口的参数的方法(我们称之为foo):

<T extends HasClickHandlers & DoesFancyFeedback> void foo(T arg);

请注意两个接口之间的一个&号。



 类似资料:
  • 本文向大家介绍接口可以在Java中扩展多个接口吗?,包括了接口可以在Java中扩展多个接口吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以做到。一个接口可以扩展Java中的多个接口。 例: 输出:

  • 问题内容: 我在Java中有以下情形。假设我有一个接口,以及两个实现此接口的类。如下: 公共接口myInterface { } 公共类A实现myInterface { } 公共类B实现myInterface { } 如果定义如下,如何调用上面的printOtherStuff方法: 上面的调用代码似乎无效。有任何想法吗? 问题答案: 的参考类型为。这意味着您只能访问接口中定义的方法。您可以将其强制类

  • 本文向大家介绍解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题,包括了解决Kotlin 类在实现多个接口,覆写多个接口中相同方法冲突的问题的使用技巧和注意事项,需要的朋友参考一下 一、首先来看一个例子 二、解决冲突的例子 补充知识:Kotlin 如何优雅的实现『多继承』 这一期给大家讲一个有意思的东西。我们都知道 Java 当年高调的调戏 C++ 的时候,除了最爱说的内存自动回

  • 问题内容: 在Java中这样做是合法的: 我该怎么做(语法不合法): 我想尽可能地迫使调用者使用既可追加又可关闭的对象,而无需特定类型。 有多个标准类可以执行此操作,例如BufferedWriter,PrintStream等。 如果我定义自己的界面 因为实现了Appendable和Closeable的标准类没有实现我的接口AppendableAndCloseable,所以这是行不通的(除非我不像我

  • 问题内容: 我一直在研究J2EE的JMS API,发现了一个奇怪的行为,其中在接口(例如Session中的createQueue)中声明的某些方法在诸如QueueSession之类的子接口中再次声明,并且具有相同的文档。 因为子接口“继承”了它继承的接口的所有方法声明,并且由于JavaDoc工具没有问题,所以可以对子接口的JavaDoc进行排序并创建“继承的操作”列表,因此我无法弄清楚这将实现什么

  • 问题内容: 具有相同方法名称和签名的两个接口。但是由单个类实现,那么编译器将如何确定哪个方法用于哪个接口? 例如: 问题答案: 如果一个类型实现两个接口,并且每个接口定义一个具有相同签名的方法,则实际上只有一个方法,并且它们是不可区分的。例如,如果这两个方法的返回类型冲突,那么它将是编译错误。这是继承,方法重写,隐藏和声明的一般规则,并且不仅适用于两个继承的interface方法之间的可能冲突,还