考虑这个场景
public abstract class A{
}
public interface B{
}
我将如何创建一个扩展 A 并实现 B 的对象列表?
List<? extends A implements B> list = new List();
谢谢
最佳答案
您还可以使用“&”运算符并将未知类声明为类型参数,如下所示。与声明 class XXX extends B implement A
相比,此方法的优势在于您的代码将适用于满足约束的任何此类类,而不仅仅是 XXX
后代。
import java.util.*;
interface A {};
class B {};
class Test {
public <T extends B & A> List<T> asList(Collection<T> elements) {
List<T> result = new ArrayList<>(elements.size());
for (T element : elements) result.add(element);
return result;
}
}
关于Java 泛型创建扩展类 A 并实现接口(interface) B 的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47463923/