我確信之前會詢問這個問題,但在搜索一段時間後我找不到它。以抽象類作爲參數的Java方法返回子類的實例
我需要一個函數,將做類似如下:
public static AbstractClass createClass(Class<AbstractClass> theChildClass, int someVariable){
AbstractClass theInstance = theChildClass.newInstance(someVariable);
return theInstance;
}
然後在抽象類我想定義它像這樣:
public abstract class AbstractClass{
private int someVariable;
public AbstractClass(int someVariable){
this.someVariable = someVariable;
initOnChild();
}
protected abstract void initOnChild();
}
然後在子類我最好不要」 t想要定義「public ChildClass(int someVariable){}」方法,因此它們看起來像這樣:
public class ChildClass extends AbstractClass{
@Override
protected void initOnChild(){
//do some stuff
}
}
我後來的理想結果是能夠調用如下方法:
ChildClass theInstance = UtilityClass.createClass(ChildClass.class, 1);
這甚至有可能嗎?任何解決方案或建議非常讚賞。
我沒有'標記爲有用'的聲望,但這正是我所追求的!謝謝。 – AndyW 2014-09-30 14:03:03