我正在尝试转换以下方法:
public List<AliasIp> getStoreAsList(String storeName) {
return new java.util.ArrayList<>(Arrays.asList(mGson.fromJson(getStoreRaw(storeName), AliasIp[].class)));
}
Run Code Online (Sandbox Code Playgroud)
对于类似于的通用版本:
public <T> List<T> getStoreAsList(String storeName) {
return new java.util.ArrayList<T>(Arrays.asList(mGson.fromJson(getStoreRaw(storeName), T[].class)));
}
Run Code Online (Sandbox Code Playgroud)
但是我遇到了T [].类的麻烦,它没有编译错误:
"无法从类型变量中选择"
应该用什么语法来避免这个错误?
您可以包含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)));
}
Run Code Online (Sandbox Code Playgroud)
然后就像这样使用它:
List<MyStore1> myStores1 = getStoreAsList("myStoreName1", MyStore1[].class);
List<MyStore2> myStores2 = getStoreAsList("myStoreName2", MyStore2[].class);
Run Code Online (Sandbox Code Playgroud)