我有一个抽象类“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;
}
答案 0 :(得分:1)
我会使Actor成为一个有限的泛型类型,然后在具体的子类中进一步限制它。
public abstract class Actor<A extends Actor<A>> {
public List<A> getActors() { ...
}
public class Actor1 extends Actor<Actor1> { ...
这样,来自getActors
的{{1}}将返回Actor1
。