Java:如何扩展使用泛型但限制类型的对象

标签 java generics arraylist extends implements

很抱歉,但我不确定我是否使用或正在使用正确的术语,但基本上我想创建一个名为 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/

相关文章:

java - Java 中的参数化类型 (GADT)

java - Tomcat jdbc 池不工作

java - 我试图同时掷三个骰子,直到它们落在数字 6 上

java - JUnit 的方法计数对 compareTo 方法计数两次。为什么?

ios - 形状数组 - 协议(protocol)只能用作通用约束

arraylist - 有没有办法使用Java 8中的数据流将由特定字符描绘的许多多行字符串收集到Arraylist中?

java - 将特定项目设置为始终位于 recyclerview 顶部

Java 代码返回 null 而不是字符串

java - ArrayList for 循环仅删除偶数索引

java - 与 ArrayList 的合并排序