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