我正在尝试编写一个SyncAdapter,它根据我为此目的制作的一组“实体”发出一组请求。
为此,我创建了一个小类,它包含创建Request所需的信息,称为EntityContract
public class EntityContract {
public final SyncContract syncContract;
public final String entityName;
public final String endpoint;
public final Class<? extends ModelClass> modelClass;
public EntityContract(SyncContract syncContract, String entityName, String endpoint , Class<? extends ModelClass> modelClass)
{
this.syncContract = syncContract;
this.endpoint = endpoint;
this.entityName = entityName;
this.modelClass = modelClass;
}
public String getUrl()
{
return SyncContract.SERVICE_URL + "/" + endpoint;
}
}
在我的SyncAdapter中,我只是迭代一系列entityContracts来一个接一个地启动请求。
我遇到的问题是,当我尝试使用Gson解析响应时。 (因此,这不是Gson相关的问题,我猜。它是关于Java语义的)
gson期望在以下结构中进行调用
List< ExampleModel > list = new Gson().fromJson( response.body().charStream() , new TypeToken<List<ExampleModel>>(){}.getType() );
或
ExampleModel[] list = new Gson().fromJson( response.body().charStream() , ExampleModel[] );
其中“ExampleModel”必须用entityContract中的Class替换,所以它会读取如下内容:
List< myContract.modelClass > list = new Gson().fromJson( response.body().charStream() , new TypeToken<List<myContract.modelClass>>(){}.getType() ); // Won't compile!!!
是否可以使用从类变量读取的参数来实例化List? 如果没有,是否有其他结构可以实现这一目标?