在String中定义类以在Gson中使用

时间:2014-02-19 08:48:11

标签: java json class netbeans gson

我正在尝试使用Gson根据某些User实例化JSON对象,并在class中定义String。但是,它无法正常工作。

错误Netbeans给出的是以下

enter image description here

这是代码

    Class<?> myClass = Class.forName("User");

    Gson gson = new Gson();
    User user = gson.fromJson(json, myClass);

我的做法出了什么问题?

编辑:我试图这样做的原因是因为我知道编译时的类型

2 个答案:

答案 0 :(得分:1)

只需使用:

Gson gson = new Gson();
User user = gson.fromJson(json, User.class);

或者如果您不知道类型:

Gson gson = new Gson();
Object obj = gson.fromJson(json, Class.forName("User"));

您获得的错误与泛型有关 - 返回类型是从您为其指定返回值的变量类型推断出来的。然后将此推断类型与类参数一起使用。

public <T> T fromJson(String json, Class<T> classOfT)

更改返回值分配给Object的变量类型意味着类参数将为Class<?>类型,并且编译器很满意。

答案 1 :(得分:0)

Class<User> myClass = Class.forName("User");

Gson gson = new Gson();
User user = gson.fromJson(json, User.class);