gpt4 book ai didi

java - 从java中的子类调用泛型方法

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:28 25 4
gpt4 key购买 nike

我是泛型新手,这是我的问题:

public class Tree<T> {
public Collection<Tree<T>> getSubTrees(){};
public Tree<T> getTree(T element){}
}


public class DataTree extends Tree<Data>{
public void someMethod(){
DataTree dataTree = this.getTree(root) ;// type mismatch
Collection<DataTree> leafs = this.getSubTrees(); //type mismatch

//following works
Tree<Data> dataTree = this.getTree(root);
Collection<Tree<Data>> leafs = this.getSubTrees();
}
}

你能告诉我为什么会出现这样的错误,或者如何正确地将 Tree 转换为 DataTree 以调用 DataTree 的特定方法吗?

最佳答案

DataTreeTree<Data>但是Tree<Data> 并不总是 DataTree .

您正在返回 Tree<T> , 不是 DataTree .基类不能转换为派生类。

关于java - 从java中的子类调用泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12214866/

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