考虑这种情况
public abstract class A{
}
public interface B{
}
Run Code Online (Sandbox Code Playgroud)
我如何创建扩展 A 并实现 B 的对象列表?
List<? extends A implements B> list = new List();
Run Code Online (Sandbox Code Playgroud)
谢谢
您还可以使用“&”运算符并将未知类声明为类型参数,如下所示。与声明 a 相比,这样做的优点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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4968 次 |
| 最近记录: |