很抱歉,但我不确定我是否使用或正在使用正确的术语,但基本上我想创建一个名为 EntityList
的类来扩展 ArrayList 但我希望它能够我创建的名为 EntityInterface 的接口(interface)基本上在 EntityList 的所有时刻都用于 E,因此我无需手动声明。
就代码而言,我希望能够将其放入
EntityList entityList = new EntityList();
并得到与此等效的结果
EntityList<EntityInterface> entityList = new EntityList<EntityInterface>();
我真的不确定如何从这里继续。这是我解决这个问题的尝试。
import java.util.ArrayList;
//right now just a class that extends ArrayList designed to hold Entities.
public class EntityList<EntityInterface> extends ArrayList<EntityInterface> {
EntityList(){
}
}
我可以显示问题的最好方法是将数组列表显示为即时变量。
import java.util.ArrayList;
//right now just a class that extends ArrayList designed to hold Entities.
public class EntityList<EntityInterface> {
ArrayList al = new ArrayList();
EntityList(){
}
}
但这基本上就是我想要的,再次以变量形式而不是扩展形式。
import java.util.ArrayList;
//right now just a class that extends ArrayList designed to hold Entities.
public class EntityList<EntityInterface> {
ArrayList<EntityInterface> al = new ArrayList<EntityInterface>();
EntityList(){
}
}
我相信如果我做这样的事情,
public class EntityList<? implements EntityInterface> extends ArrayList<?> {
它应该基于这个线程工作。 Generic: ArrayList of ? Extends ISomeInterface in Java
但是在 Eclipse 上尝试修改我的代码后:
public class EntityList<E implements EntityInterface> extends ArrayList<E> {
和 公共(public)类 EntityList 扩展 ArrayList { 两者都在 eclipse 中抛出错误。 我正在使用 Java 6。我不确定我正在使用哪个子版本。我有 Java 7,如果这可以纠正错误,我会尝试一下。
最佳答案
public class EntityList extends ArrayList<EntityInterface> {
关于Java:如何扩展使用泛型但限制类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15702018/