我正在尝试使用Bukkit Minecraft api从配置文件中提取一个整数。我不太明白为什么我必须使用一个字节(到目前为止,还没有真正了解过它们),并且在使用似乎对其他人有用的代码时遇到了以下错误:

无法从整数转换为字节。

player.getInventory().removeItem(new ItemStack(Material.getMaterial(dItemId1), 1, (byte) dItemMeta1));


dItemMeta1只是从配置文件提取的变量,定义如下:

public Integer dItemMeta1;
dItemMeta1 = getConfig().getInt("FirstDonationItemIdMeta");


任何人都可以启发我正确使用此方法,或者从配置中获取值时首先如何将其正确定义为字节?

最佳答案

您可以将Integer对象转换为int原语,也可以将int强制转换为byte,但是不能从Integer强制转换为byte(对于Java来说,这太过分了设计师)

你能做的是

player.getInventory().removeItem(new ItemStack(
         Material.getMaterial(dItemId1), 1, dItemMeta1.byteValue()));


注意:如果dItemMeta1为null,则将抛出NullPointerException。

10-06 05:45