我有一个带有“ T extended StorageClass”的类。您可以扩展该类并在“ T”中放入另一个类,例如“ GroupStorage extended Storage”。在“ Storage”类中有一个名为“ 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;
}
}
答案 0 :(得分:0)
您将必须通过以下方式将类的类型传递给您的方法:
public T get(String groupName, Class<T> type)
,然后将其用作:
t = Storage.GSON.fromJson(reader, type);