错误:找到“T”,需要:“? 扩展液体'

特博

我在尝试使用基本泛型时遇到了一些错误。以下是挑战的简化版本;

public final class Example {
    private List<? extends Liquid> holder;
    private List<List<? extends Liquid>> holder2;

    public Example() {
        holder = new ArrayList<>();
        holder2 = new ArrayList<>();
    }

    public <T extends Liquid> void add(int position, T value) {
        if (holder != null)
            holder.add(position, value); //<- Error Here
    }

    public <T extends Liquid> void add(int position, List<T> value) {
        if (holder != null)
            holder.add(position, value); //<- This works
    }
}

客户

我希望变量持有者存储不同subtypes的液体。例子;

exampleInstance.add(0, new Water()); 
exampleInstance.add(1, new Juice());
戴维xxx

使用上限通配符声明您的字段:List<? extends Liquid> holder仅当您分配给它的子类或要在方法中传递它时才有意义。
在这种情况下,您不能在 List 中添加除 null 之外的任何内容。

你不在它的用例中。所以,而不是,声明private List<Liquid> holder能够在您的列表中添加 Liquid 实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

shopify液体错误:超出内存限制

来自分类Dev

HTML错误检查?需要扩展或烘焙?

来自分类Dev

Shopify液体代码段需要{%raw%}才能输出对象

来自分类Dev

错误:液体语法错误:未知标记-变量范围?

来自分类Dev

jekyll 3.0.1 | 错误:液体语法错误:未知标签“ endunless”

来自分类Dev

在gh页的Jekyll中是否可以扩展{{content}}而无需评估液体标签?

来自分类Dev

液体错误:数组'collection.products'不可分页

来自分类Dev

扩展树缓存满错误需要调优查询

来自分类Dev

在哪里可以找到IObservable <T> .ToTask扩展方法?

来自分类Dev

返回“错误请求”,但需要“未找到”

来自分类Dev

错误:需要数组,但找到字符串

来自分类Dev

cocos2dx动作错误:液体,wave3d和lens3d

来自分类Dev

Jekyll的带有github-pages gem的'gist'标签的液体语法错误

来自分类Dev

如何找到扩展事件的用户?

来自分类Dev

宏扩展错误

来自分类Dev

扩展ActionBarActivity导致错误

来自分类Dev

Restlet RAML扩展错误

来自分类Dev

错误无法扩展变量

来自分类Dev

表示错误的扩展字符

来自分类Dev

PHP加载扩展错误

来自分类Dev

扩展的DataGrid行错误

来自分类Dev

扩展原始错误消息

来自分类Dev

Java扩展错误

来自分类Dev

比例错误的扩展显示

来自分类Dev

php 扩展 >> 错误

来自分类Dev

Java错误扩展

来自分类Dev

Scala:需要类类型,但找到了T

来自分类Dev

Scala:需要类类型,但找到了T

来自分类Dev

类型不匹配; 找到`Message`,需要`T`