老实说,我不确定标题是否正确适用;但我会试着用例子来解释我的问题。java帮助澄清通用类的工厂方法
说我有两个班
public class Entity {
private static int lastID = 0;
private int ID;
private Entity(){};
public static Entity create(){
lastID++;
Entity ent = new Entity();
ent.ID = lastID;
return ent;
}
}
public class Blob extends Entity {
private int x,y;
pubic void setPos(int X,int Y){;
x = X;
y = Y;
}
}
我想与实体工厂接口将在
Blob b = Entity.create<Blob>();
形式或自然界的东西的方式。
我最好的尝试是
public static <E extends Entity> E create(){
E ent = new E();
...
但是,这并不想要的工作。
如果你有一个泛型类像'E'你不能用'新E()开始吧' –
我希望Ë将是斑点类 – ZZT
你为什么不干脆用一个别名经典的工厂模式来做你所需要的?您需要将某些参数传递给工厂方法,以帮助确定要创建的实体的实例,但 – Constantin