Java:递归泛型编译器错误

用户名

给出以下人为的示例:

public class Child extends Parent<Child, String> () {}

public class Parent<E extends Parent, V> {

    public V value;

    // maps <List of Entities> to <List of Values>
    public List<V> filterValues(List<E> entities) {
        List<V> values = new ArrayList();
        for (E entity : entities) {
            values.add(entity.value); // compiler error: add(V) cannot be
                                      // applied to (java.lang.Object)
        }
        return values;
    }

}

我不完全了解此错误的性质。List<V>解析为List<Object>如何解决将特定类型映射到其关联字段的问题?

迪玛

如果我正确理解您要执行的操作,似乎您想声明Parentclass Parent<E extends Parent<?,V>, V>

它可以编译,但是在不知道此设计目的的情况下,很难进一步评论其用途。我的“直觉”是,你得太多严重吧...一个直接的想法是为什么不参数化filterValuesE而不是整个类:

class Parent<V> {
     public <E extends Parent<V>> List<V> filterValues(List<E> entities) {
         ....
      }
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java泛型-编译器错误

泛型和迭代器的Java编译器错误

调用泛型方法java的编译器错误

解决泛型类型约束中的编译器错误

使用Java泛型并将List作为方法参数的编译器错误并引发泛型异常

Java泛型:Eclipse中未显示编译器错误

Eclipse Java 编译器推断出错误的泛型类型?

责任链设计原理中的Java泛型编译器错误

Java泛型错误:来自命令行编译器的不可转换类型

为什么运算符<对于Java泛型有编译器错误?

泛型混淆:欺骗编译器

尝试在闭包中使用泛型时发生意外的编译器错误

条件类型添加了额外的泛型编译器错误

将@SuppressWarnings(“ unchecked”)泛型添加到单行会产生eclipse编译器错误

使用 Linq exceptBy 函数的泛型类中出现奇怪的编译器错误

泛型类型扩展无效的重新声明编译器错误

为什么Java编译器失去构造函数实例化轨道泛型类型的?

如何提取从Java泛型类类满足编译器?

在Java中转换为泛型方法类型变量时出现编译器警告

当我用Java迭代非泛型映射时,编译器会抱怨

为什么这个java接口定义使用编译器接受的泛型?

此代码是否利用Java编译器泛型验证限制

Java-本地类和泛型,为什么会出现编译器警告?

保存ArrayLists时由泛型引起的Java编译器警告

使用具有多个边界的泛型时,编译器不会显示编译时错误

编译器如何推断泛型方法的类型?

声明泛型类型时的编译器警告

为什么编译器不推断泛型

Java包装泛型编译错误