モデル インスタンスを作成するためのファクトリがあります。ファクトリは次のメソッドを提供します。
public <Model> Model createFromJson(String json, final Class<Model> model) {
Model modelInstance = gson.fromJson(json, model);
((IModel)modelInstance).onCreateFromJson();
return modelInstance;
}
ご覧のとおり、モデルのインスタンス (以前はクラス メソッドのパラメーターとして指定) をインターフェイスにキャストしているため、特定のメソッドを呼び出すことができます。さらに、呼び出し元がオブジェクトをキャストしてはならないため、一般的な戻り値の型もうまく機能します。次のように呼び出すだけで十分です。
MyModel myModel = ModelFactory.getInstance().createFromJson(json, MyModel.class);
しかし、残念ながら、次のような任意の種類のオブジェクトでファクトリ メソッドを呼び出すことができます。
Integer myTest = ModelFactory.getInstance().createFromJson(json, Integer.class);
そこで、ファクトリ メソッドのパラメーターを IModel 型に定義したいと思います。しかし、モデル (IModel) のインスタンスではなく、クラスを渡しているため、その方法がわかりません。
だから、実際に私はこのようなものを探しています:
public <Model<? extends IModel>> Model
createFromJson(String json, final Class<Model<? extends IModel>> model)
誰でも私にアドバイスをもらえますか?