我有一个"T扩展StorageClass“的类。您可以扩展这个类,并将另一个类安装到"T“中,例如"GroupStorage扩展存储”。在“存储”类中,是一个名为"get“的方法。现在,我希望该方法将json转换为"T”类,在我的示例中转换为"Group“类。也许当您查看下面的代码时,您就会明白了。
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;
}
}发布于 2019-01-01 03:08:47
您必须将类的类型传递给方法,如下所示:
public T get(String groupName, Class<T> type)然后将其用作:
t = Storage.GSON.fromJson(reader, type);https://stackoverflow.com/questions/53992777
复制相似问题