我是Java新手。 我正在開發類似於iOS應用的Android程序。 應用程序的目的之一 - 是從服務器獲取數據。 數據往往是陣列與字典等 「ID = 1」, 「名稱= SomeName」。 我有類從泛型創建類或超類的實例
class BaseArrayList<Type extends BaseItem> extends BaseItem {
public void processObject(Map<?,?> map) {
//......
//Some loop body
Type item = (Type) Type.create();
item.processObject(map);
//.....
}
而且BaseItem有方法來創建():
public static BaseItem create() {
return new BaseItem();
}
它的工作原理,但BaseItem的sublass - 它不能正常工作。 我發現靜態方法不重寫。
那麼,如何才能解決這個任務:創建數組的自定義類,只需創建如BaseArrayList的定製實例:
new BaseArrayList<SomeSublassOfBaseItem>
這個問題在ObjC解決這樣的 -
[[memberClass alloc] init];
Type item = Type.newInstance(); – 2012-03-29 13:37:43
看看「爲什麼Java不允許重寫靜態方法?」 http://stackoverflow.com/q/2223386/1250303 – Java42 2012-03-29 13:38:09
@AlexeiKaigorodov這不適用於任意類型。 – Jesper 2012-03-29 13:53:54