【问题标题】:Object <? implements InterfaceA, InterfaceB>对象 <?实现接口A,接口B>
【发布时间】:2018-01-24 12:30:16
【问题描述】:

我需要一个像这样引用两个不同接口的对象:

interface InterfaceA {
    public void a();
}

interface InterfaceB {
    public void b();
}

class Test() {
    Object <? implements InterfaceA, InterfaceB>; object;

    Test() {
        object.a();
        object.b();
    }
}

我知道继承有这种方式:Class &lt;? extends Main&gt; a ,解决方案可能是一个辅助类:class Helperclass implements InterfaceA, InterfaceB{}

感谢您的帮助和阅读:)

【问题讨论】:

标签: java interface casting


【解决方案1】:

如果您向 Test 类添加泛型类型参数,则可以要求此类型参数实现两个接口:

class Test<T extends InterfaceA & InterfaceB> {
    T object;

    Test() {
        object.a();
        object.b();
    }

}

当然你应该在调用方法之前初始化object变量。

【讨论】:

  • 谢谢。如果我需要两个或更多仿制药,我该怎么办?
  • @Nero 如果您的意思是两个或多个泛型类型参数,您可以根据需要定义任意多个。例如:class Test&lt;T extends InterfaceA &amp; InterfaceB,R,S extends InterfaceB&gt;
猜你喜欢
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 2015-07-03
  • 2017-03-19
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多