当T被定义为变量“T类”时,实现<t>的列表

时间:2015-09-17 15:07:53

标签: java arrays generics

我正在尝试编写一个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? 如果没有,是否有其他结构可以实现这一目标?

0 个答案:

没有答案