gpt4 book ai didi

java - 为什么我在编译时遇到类型不匹配的问题

转载 作者:行者123 更新时间:2023-12-01 16:58:32 26 4
gpt4 key购买 nike

我将一个图(使用 JUNG 的 Graph 接口(interface))声明为类变量,如下所示:

private Graph<Knoten, Kante> _graph;

我尝试像这样初始化它:

_graph = new DirectedSparseGraph<AttrKnoten, GewKante>();

AttrKnoten 扩展了 Knoten,GewKante 扩展了 Kante(目前它们只是标记接口(interface))。我在编译时收到以下错误消息:

"Type mismatch: cannot convert from DirectedSpareGraph<AttrKnoten, GewKante> to Graph<Knoten, Kante>"

这是为什么呢?除了在声明期间省略参数之外,还有其他方法可以处理此问题吗?

最佳答案

你不能用泛型来做到这一点。

一个更简单的例子:

List<CharSequence> list = new ArrayList<String>();

即使 String 实现 CharSequence,这也不起作用。

<小时/>

最简单的解决方案就是这样做:

_graph = new DirectedSparseGraph<Knoten, Kante>();

您仍然可以将 AttrKnotenGewKante 对象添加到 _graph

<小时/>

或者,如果您只需要 AttrKontenGewKante 对象,只需将其声明为:

private Graph<AttrKnoten, GewKante> _graph;

关于java - 为什么我在编译时遇到类型不匹配的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29721288/

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