在 libgdx 中,您可以使用抽象类轻松创建池Pool
。由于它是一个抽象类,因此在构造它时需要匿名覆盖它的方法:
public Pool<String> pool = new Pool<String>() {
@Override
protected String newObject() {
return new String();
}};
我现在要做的是为泛型类型 T 放置一个通配符,它扩展了一个抽象的 BaseClass,如下所示:
protected static Pool<? extends GameCommand> commandPool = new Pool<? extends GameCommand>() {
@Override
protected <T extends GameCommand> newObject() {
return new T();
}
};
但它不会起作用。我怎么才能得到它?
重写 newObject() 时必须插入哪种类型?
编辑: Pool 引用它的抽象方法,如下所示:
abstract public class Pool<T> {
(...)
abstract protected T newObject ();
(...)
}