首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用T表示"fromJson“

用T表示"fromJson“
EN

Stack Overflow用户
提问于 2019-01-01 03:01:02
回答 1查看 383关注 0票数 2

我有一个"T扩展StorageClass“的类。您可以扩展这个类,并将另一个类安装到"T“中,例如"GroupStorage扩展存储”。在“存储”类中,是一个名为"get“的方法。现在,我希望该方法将json转换为"T”类,在我的示例中转换为"Group“类。也许当您查看下面的代码时,您就会明白了。

代码语言:javascript
复制
public abstract class Storage<T extends StorageClass> {
    // This should return whatever T is.
    public T get(String groupName) {
        T t = null;
        File file = new File(this.groupFolderPath, groupName + ".json");
        if (file.exists()) {
            try {
                FileReader reader = new FileReader(file);
                // 'T.class' is not possible
                t = Storage.GSON.fromJson(reader, T.class);
            } catch (Exception e) {
                e.printStackTrace();
                Bukkit.getLogger().warning("Failed to read " + groupName + ".json!");
            }
        } else {
            Bukkit.getLogger().warning("The group " + groupName + " does not exists!");
        }
        return t;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-01 03:08:47

您必须将类的类型传递给方法,如下所示:

代码语言:javascript
复制
public T get(String groupName, Class<T> type)

然后将其用作:

代码语言:javascript
复制
t = Storage.GSON.fromJson(reader, type);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53992777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档