在 Java 中有没有一种方法可以使用泛型来指定实现接口(interface) A 或 B 的方法参数?
public void foo(Object bar) // bar could either be an implementation of interface A or interface B but nothing else.
private interface A<T>
{
Object work(final Fizz fizz, final T t);
}
private interface B
{
Object work(final Fizz fizz);
}
最佳答案
一般意义上没有真正的解决方案,但对于您的特定示例,您可以尝试类似的方法:
public <T> void foo(A<T> bar) {
// ...
}
private interface A<T> {
Object work(final Fizz fizz, final T t);
}
private interface B extends A<Void> {
default Object work(final Fizz fizz) {
return work(fizz, null);
}
Object work(final Fizz fizz, final Void ignoreMe);
}
关于java - 可以是 N 个接口(interface)的实现的方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40371667/