我有两个接口(interface),A 和 B。我正在编写一个函数,我希望它只接受使用这两个接口(interface)的对象。这是我一直在尝试的一些事情。我希望我的问题很清楚。
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
}
但是这些尝试都没有奏效。预先感谢您对此的任何见解。
最佳答案
您可以尝试创建一个从 A
和 B
扩展的第三个接口(interface),并将其用作您的方法标记...
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
关于java - 确保输入参数满足多个类型标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18819325/