Bukkit Java NullPointer在检查内容是否为null时
我使用的是Bukkit API 1.8.3 我有一段代码:Bukkit Java NullPointer在检查内容是否为null时,java,null,nullreferenceexception,bukkit,Java,Null,Nullreferenceexception,Bukkit,我使用的是Bukkit API 1.8.3 我有一段代码: for(String vey : main.getConfig().getConfigurationSection("shopitems."+key+".enchantments").getKeys(false)) { Enchantment ench = Enchantment.getByName(vey); int level = main.getConfig().getInt("shopitems."+key+".
for(String vey : main.getConfig().getConfigurationSection("shopitems."+key+".enchantments").getKeys(false))
{
Enchantment ench = Enchantment.getByName(vey);
int level = main.getConfig().getInt("shopitems."+key+".enchantments."+vey);
meta.addEnchant(ench, level, true);
}
这段代码给了我一个空指针,指向开始for循环迭代的行
要尝试修复此问题,我有一个空检查程序:
if(main.getConfig().getConfigurationSection("shopitems."+key+".enchantments").getKeys(false)!=null)
在这个空检查之后,我将上面的代码放在这个if语句中
然而,我在测试路径是否为空的行上得到一个空指针
我的问题:为什么这不起作用,我如何修复它
注意:返回文件配置的main.getConfig()不是空的,我已经测试了一个调试过的
if(main.getConfig().getConfigurationSection("shopitems."+key+".enchantments").getKeys(false)!=null)
错误,因为当您尝试getKeys(false)
时,它返回null,因为getConfigurationSection()
已经为null。您可以通过以下方式解决此问题:
if(main.getConfig().getConfigurationSection("shopitems."+key+".enchantments") !=null);
main可以为null,main.getConfig()可以为null,等等?我编辑了我的帖子,我调试过main.getConfig()不是null。你测试过getConfigurationSection和getKeys返回的内容吗?@JamesB我正在测试它是否为nullnull@JarFile我的观点是,超长表达式
main.getConfig().getConfigurationSection(“shopitems.”+key+“.enchancts”).getKeys(false)
可以在不同的部分为null。main.getConfig()
不是null,但是main.getConfig().getConfigurationSection(“shopitems.”+key+“.enchancts”)
呢?