我有两个接口,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
}
这些尝试都没有奏效。提前感谢您对此的任何见解。
答案 0 :(得分:1)
您可以尝试创建一个从A
&amp; B
并将其用作方法标记...
public interface C extends A, B {
}
然后你只需要担心C
...
public <T extends C> void function(T thing) {
// do things
}
这确实意味着任何调用该方法的人都必须实现C
而不仅仅是A
和B
,但它应该让你跨越这一行......
那是......
public class MyAB implements A, B {
}
无法传递给function
,MyAB
必须实施C