对象<! - ?实现InterfaceA,InterfaceB - >

时间:2018-01-24 12:30:17

标签: java interface casting

我需要一个引用两个不同界面的对象:

interface InterfaceA {
    public void a();
}

interface InterfaceB {
    public void b();
}

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

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

我知道继承有这种方式:Class <? extends Main> a 并且解决方案可以是帮助类:class Helperclass implements InterfaceA, InterfaceB{}

感谢您的帮助和阅读:)

1 个答案:

答案 0 :(得分:5)

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

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

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

}

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