0

我有两个接口,A 和 B。我正在编写一个函数,我希望它只接收使用这两个接口的对象。这是我一直在尝试的一些事情。我希望我的问题很清楚。

    public void function((? implements A,B) thing) {
        // do things
    }

    public <T extends A, T extends B> void function(T thing) {
        // do things
    }

    public <T extends A,B> void function(T thing) {
        // do things
    }

但这些尝试都没有奏效。提前感谢您对此的任何见解。

4

1 回答 1

1

您可以尝试创建一个从A&扩展的第三个接口,B并将其用作您的方法标记...

public interface C extends A, B {
}

那么你只需要担心C...

public <T extends C> void function(T thing) {
    // do things
}

这确实意味着调用该方法的任何人都必须具有实现C,而不仅仅是Aand B,但它应该让你越过这条线......

那是...

public class MyAB implements A, B {
}

不能传递给functionMyAB必须实现C

于 2013-09-16T01:48:32.617 回答