我试图转换以下方法:
public List<AliasIp> getStoreAsList(String storeName) {
return new java.util.ArrayList<>(Arrays.asList(mGson.fromJson(getStoreRaw(storeName), AliasIp[].class)));
}
与类似的通用版本:
public <T> List<T> getStoreAsList(String storeName) {
return new java.util.ArrayList<T>(Arrays.asList(mGson.fromJson(getStoreRaw(storeName), T[].class)));
}
但是我遇到了 T []。class 的麻烦,它没有用错误编译:
&#34;无法从类型变量&#34;
中进行选择语法应该是什么来避免这个错误?
答案 0 :(得分:5)
您可以将Class<T[]> klass
包含在方法参数中,如下所示:
public <T> List<T> getStoreAsList(String storeName, Class<T[]> klass) {
return new java.util.ArrayList<T>(Arrays.asList(mGson.fromJson(getStoreRaw(storeName), klass)));
}
然后就这样使用它:
List<MyStore1> myStores1 = getStoreAsList("myStoreName1", MyStore1[].class);
List<MyStore2> myStores2 = getStoreAsList("myStoreName2", MyStore2[].class);