gpt4 book ai didi

Java:递归泛型编译器错误

转载 作者:行者123 更新时间:2023-12-01 07:57:36 26 4
gpt4 key购买 nike

给出以下人为的示例:

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):

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

关于Java:递归泛型编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28102397/

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