老實說,我不確定標題是否正確適用;但我會試着用例子來解釋我的問題。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