Java 为什么在编译时会出现类型不匹配

Java 为什么在编译时会出现类型不匹配,java,types,polymorphism,jung,Java,Types,Polymorphism,Jung,我将图形(使用JUNG的图形接口)声明为类变量,如下所示: private Graph<Knoten, Kante> _graph; _graph = new DirectedSparseGraph<AttrKnoten, GewKante>(); private-Graph\u-Graph; 我尝试如下初始化它: private Graph<Knoten, Kante> _graph; _graph = new DirectedSparseGraph

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

private Graph<Knoten, Kante> _graph;
_graph = new DirectedSparseGraph<AttrKnoten, GewKante>();
private-Graph\u-Graph;
我尝试如下初始化它:

private Graph<Knoten, Kante> _graph;
_graph = new DirectedSparseGraph<AttrKnoten, GewKante>();
\u graph=new DirectedSparseGraph();
AttrKnoten扩展了Knoten,GewKante扩展了Kante(目前它们只是标记接口)。我在编译时收到以下错误消息:

"Type mismatch: cannot convert from DirectedSpareGraph<AttrKnoten, GewKante> to Graph<Knoten, Kante>"
“类型不匹配:无法从DirectedSpareGraph转换为图形”

为什么呢?除了在声明过程中省略参数之外,还有其他方法处理这个问题吗?

泛型不能这样做

一个简单的例子:

List<CharSequence> list = new ArrayList<String>();
您仍然可以将
attrnoten
GewKante
对象添加到
\u图形中


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

private Graph<AttrKnoten, GewKante> _graph;
private-Graph\u-Graph;

泛型不能这样做

一个简单的例子:

List<CharSequence> list = new ArrayList<String>();
您仍然可以将
attrnoten
GewKante
对象添加到
\u图形中


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

private Graph<AttrKnoten, GewKante> _graph;
private-Graph\u-Graph;