【发布时间】:2018-05-06 22:20:47
【问题描述】:
我今天尝试创建一个 Spigot 插件,但遇到了一个难以修复的错误。当我试图创建一个文件系统来保存一些数据时,我下载了库 SnakeYAML 的源代码并将其放入我的 src.xml 文件中。然后我按照this tutorial 创建了一个配置并按照所有说明进行操作。我得到一个 NullPointerException。原来配置对象是空的。我不确定发生了什么。
PlayerYML getConfig(File playerYml) {
try {
InputStream ymlStream = new FileInputStream(playerYml.getAbsolutePath());
System.out.println(ymlStream);
PlayerYML config = yaml.loadAs(ymlStream, PlayerYML.class);
return config;
} catch (Exception ex) {
System.out.println("getConfig() error");
ex.printStackTrace();
return null;
}
}
这是我的 PlayerYML 类:
import java.util.Map;
public class PlayerYML {
private int reputation;
private Map<String/*UUID*/, String/*Date*/> map;
public int getReputation() {
return reputation;
}
public void setReputation(int reputation) {
this.reputation = reputation;
}
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
}
感谢所有帮助!谢谢你:)
【问题讨论】:
-
您的 PlayerYML 类是相关的,请在此处添加。您确定文件存在于您尝试从中加载的路径中吗?
-
是的,我确定它存在...我用 createNewFile() 创建了它。
-
它的内容呢?如果文件为空或无效,snakeyaml 可能会返回 null
-
它是空的。我正在尝试使用 PlayerYML 创建 yaml
-
如果 YAML 输入文件为空,
loadAs返回null是预期行为,因为您提供的 YAML 流不包含任何文档。