私はJavaで新しいです。 私はiOS向けのアプリに似たAndroid向けのプログラムを開発しています。 アプリケーションの目的の1つは、サーバーからデータを取得することです。 データは、 "id = 1"、 "name = 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ため-itは動作しません。 静的メソッドがオーバーライドされていないことがわかりました。
[[memberClass alloc] init];
タイプitem = Type.newInstance(); –
「Javaが静的メソッドのオーバーライドを許可しないのはなぜですか? http://stackoverflow.com/q/2223386/1250303 – Java42
@AlexeiKaigorodovこれは、任意のタイプでは動作しません。 – Jesper