gpt4 book ai didi

java - 泛型基础

转载 作者:行者123 更新时间:2023-12-02 07:37:03 24 4
gpt4 key购买 nike

为什么以下不起作用?

Vector<? extends SomeClass> v = new Vector<SomeClass>();  
SomeClass e = new SomeClass();
v.add(e);

我得到一个编译错误:

The method add(capture#1-of ? extends SomeClass) in the type Vector is not applicable for the arguments (SomeClass)

最佳答案

集合 generic wildcards从类型扩展而来的代码不允许您添加到该 Collection

由于编译器不确切知道您尝试添加的SomeClass类型,因此它不允许这样做。异常(exception)情况是 null 对象,它可以表示任何类型的 Object

回答您的评论:虽然您不能添加Collection,但它不能被描述为只读,因为它仍然可以删除 对象

要允许添加对象,您需要使用已知类型:

Vector<SomeClass> v = new Vector<SomeClass>();

关于java - 泛型基础,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15201041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com