java对象层次结构,并将对象传递给函数

java对象层次结构,并将对象传递给函数,java,generics,object,Java,Generics,Object,我创建了一个树形图,如下所示: TreeMap<Integer, ArrayList<MyClass>> wrap = new TreeMap<Integer, ArrayList<MyClass>>(); ArrayList是一种集合类型…是吗?那么这为什么不起作用呢 在这种情况下,泛型不能像您想象的那样工作 您需要的是类似于: public foo (TreeMap<Integer, ? extends Collection<Sp

我创建了一个树形图,如下所示:

TreeMap<Integer, ArrayList<MyClass>> wrap = new TreeMap<Integer, ArrayList<MyClass>>();

ArrayList是一种集合类型…是吗?那么这为什么不起作用呢

在这种情况下,泛型不能像您想象的那样工作

您需要的是类似于:

public foo (TreeMap<Integer, ? extends Collection<Spot> > objects) {
     this.field = objects;
}
publicfoo(树映射对象){
this.field=对象;
}
被称为通配符。它将允许您传入
集合
,或扩展/实现
集合
的任何内容

?扩展集合
如下所示:

扩展集合的东西

The constructor foo(TreeMap<Integer,ArrayList<Spot>>) is undefined
public foo (TreeMap<Integer, ? extends Collection<Spot> > objects) {
     this.field = objects;
}