我有一个函数,它接收一个json字符串作为参数,一个类名作为一个对象的字符串。 json实际上是这个对象的列表。我正在尝试从json创建列表,但我没有成功。
以下是在编译时知道类名时解码json的方法:
Type listOfObjects = new TypeToken<List<UsernamePart>>(){}.getType();
Gson gson = new Gson();
List<UsernamePart> parts = gson.fromJson(input, listOfObjects);
完美无缺。但如果我想做这样的事情会发生什么:
// I have a string
String className = "UsernamePart";
// I can easily create a class object
Class<?> clazz = Class.forName(className);
// and now what?
Type listOfObjects = new TypeToken<List<??????????>>(){}.getType();
Gson gson = new Gson();
List<UsernamePart> parts = gson.fromJson(input, listOfObjects);
答案 0 :(得分:3)
<TreeView ItemsSource="{Binding ClassesWithPupils, UpdateSourceTrigger=PropertyChanged}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding}">
<Label Content="{Binding Class.Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
答案 1 :(得分:0)
不幸的是,您无法在运行时参数化Generic。必须始终在编译时知道该类型。