我在从文件中检索数据时遇到一些困难。首先,这是我创建文件的主要方法,当玩家登录服务器时将会触发(稍后)。
// SettingsManager.java
private File file;
private FileConfiguration config;
// ...
public void createFile(String fileName) {
file = new File(UnderCovern.getPlugin().getDataFolder(), fileName + ".yml");
if ( !file.exists()) {
try {
file.createNewFile();
} catch (Exception e) {
UtilLogger.exception(e, "[SettingsManager] Could not create new file.");
}
}
config = YamlConfiguration.loadConfiguration(file);
}
正在为每个用户正常创建文件 - 在另一个类中 - 其名称为此处显示的文件名。
SettingsManager.get().createFile(player.getName());
但是,我不确切知道如何为用户检索正确的 .yml
文件,并从中检索数据。此代码块会向我抛出NullPointerException
。
public Rank getRank() {
if (SettingsManager.get().getConfig().get(player.getName()) != null)
return (Rank) SettingsManager.get().getConfig().get(player.getName() + ".Rank");
return null;
}
请注意我使用的是Bukkit框架。
答案 0 :(得分:1)
你的方法:
public Rank getRank() {
if (SettingsManager.get().getConfig().get(player.getName()) != null)
return (Rank) SettingsManager.get().getConfig().get(player.getName() + ".Rank");
return null;
}
如果if (SettingsManager.get().getConfig().get(player.getName()) != null)
等于null,则返回null。因此,文件可能尚未创建,或者您尝试获取不存在的文件。我可以看到.getConfig()方法吗?