java - 如何从抽象类中实现具体具体类的列表?

标签 java design-patterns arraylist polymorphism abstract-class

我有一个抽象类“Actor”,它应该生成一个已实现的具体类之一的列表(ArrayList,也许是最好的选择),让我们使用“Actor1”。 使用工厂方法创建三个或更多具体类 Actor1,2,3...,并且所有这些类都必须创建 Actor1 列表。

有什么建议吗?

好吧,没想到回复这么快。好吧,因为我不明白它是从哪里开始的,所以到目前为止,一些代码是这样的:

public abstract class Actor implements IActor { 
   protected Coordinates coordinates;
   protected List<Actor> actor1;
   public Actor(Coordinates coordinates) { 
      this.coordinates = coordinates;    
      //How to implemet the list? 
   } 

   public Coordinates getLocation() { 
      return coordinates; 
   }

   public void setCoordinates(Coordinates coordinates) { 
      this.coordinates = coordinates; 
   }

最佳答案

我将使 Actor 成为一个仅限于自身的泛型类型,然后在具体子类中进一步限制它。

public abstract class Actor<A extends Actor<A>> {

    public List<A> getActors() { ...

}

public class Actor1 extends Actor<Actor1> { ...

这样,getActors来自Actor1将返回 List<Actor1> .

关于java - 如何从抽象类中实现具体具体类的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255362/

相关文章:

android - 集合排序 - 大列表中的错误

java - 如何为java程序创建快捷方式图标

java - 在 Java 中,如何将单个字段的多个值解析为 String 数组?

javascript - 什么是众所周知的 JavaScript MVC 模式?

typescript - 如何在 Typescript 中输入检查二进制类型别名

java - ArrayList 的类型不兼容错误

java - 如何一键从 Eclipse 运行多个 Maven 目标

java - Rest api可以允许不安装splunk转发器吗?

JavaScript 模块模式——如何创建子模块

java-如何将 ArrayList<ArrayList<String>> 转换为 String[]][]