gpt4 book ai didi

java - 从类名中获取 Gson TypeToken 作为字符串

转载 作者:行者123 更新时间:2023-11-30 10:20:23 25 4
gpt4 key购买 nike

我想做这样的事情——使用 Gson 反序列化一个具有通用类型的类。下面的代码就像一个魅力。

Type type = new TypeToken<ActionTask<UptimeAction>>() {}.getType();

ActionTask task = (ActionTask) gson.fromJson(json, type);

但是如果类型以字符串形式提供呢?我想象如下。

String className = "UptimeAction";

Type type = ... // get the type somehow

ActionTask task = (ActionTask) gson.fromJson(json, type);

这可能吗?

最佳答案

基于Guava docs ,您可以创建这样的方法:

static <T> Type mapActionTask(Class<T> innerType) {
return new TypeToken<ActionTask<T>>() {}
.where(new TypeParameter<T>() {}, innerType)
.getType();
}

然后这样调用它:

String className = "com.foo.UptimeAction";
Type type = mapActionTask(Class.forName(className));

关于java - 从类名中获取 Gson TypeToken 作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48234140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com