Java Gson动态类类型

Java Gson动态类类型,java,json,class,gson,Java,Json,Class,Gson,我正在尝试使用gson反序列化Java应用程序中的JSON对象 . 但是,我不知道如何动态应用类类型 我有一个字符串中的类名 User user = gson.fromJson(userJSON, User.class); 如何将字符串myClass作为类类型?类cls=class.forName(className); Class<?> cls = Class.forName(className); 但是你的类名应该是完全合格的-例如com.mycompany.MyClas

我正在尝试使用
gson
反序列化Java应用程序中的
JSON
对象 .

但是,我不知道如何动态应用类类型

我有一个
字符串中的类名

User user = gson.fromJson(userJSON, User.class);
如何将
字符串myClass
作为类类型?

类cls=class.forName(className);
Class<?> cls = Class.forName(className);

但是你的类名应该是完全合格的-例如com.mycompany.MyClass

我相信前面答案中的建议是完全正确的。为了避免所有混淆并使其更加明显,以下是完整的代码:

package com.test;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;

public class TestGSON {
public static void main(String[] args) {
        Gson gson = new Gson();
        try{
            Object fromJson = gson.fromJson("{\"name\":\"Dharam\"}", Class.forName("com.test.MyClass"));
            if(fromJson instanceof MyClass){
                System.out.println(fromJson);
            }
        } catch (JsonSyntaxException | ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    }
}

class MyClass {
private String name;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

@Override
public String toString() {
    return "MyClass [name=" + name + "]";
}

}
上述代码的输出:

MyClass[name=Dharam]

给我这个错误: