[code="java"]
class CollectionGenFoo {
private T x;
public CollectionGenFoo(T x) {
this.x = x;
}
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public static void main(String[] args) {
CollectionGenFoo<ArrayList> listFoo = null;
listFoo = new CollectionGenFoo<ArrayList>(new ArrayList());
//正确
listFoo.setX(listFoo.getX());
CollectionGenFoo<? extends Collection> listFoo2 = null;
listFoo2 = new CollectionGenFoo<ArrayList>(new ArrayList());
//错误
//listFoo2.setX(listFoo2.getX());
//也错
//listFoo2.setX(new ArrayList<String>());
//listFoo2.setX(/*这里怎么写*/);
}
}
[/code]