Closed. This question needs details or clarity。它当前不接受答案。












想改善这个问题吗?添加详细信息并通过editing this post阐明问题。

6年前关闭。



Improve this question





我有一个抽象类“ 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> { ...


这样,来自getActorsActor1将返回一个List<Actor1>

08-25 19:27