无法从Random类中获取随机int值

时间:2013-12-22 20:29:35

标签: java random bukkit

我有这个代码;

@SuppressWarnings("deprecation")
@EventHandler
public void entityShoot(EntityDeathEvent e) {
    ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
    Random rand = new Random();
    int sword = rand.getInt(1) + 1;
    int chest = rand.getInt(9) + 1;
    if(sword == 1)
    {
      drops.add(new ItemStack(swordID));
    }
    if(chest == 1)
    {
      drops.add(new ItemStack(chestID));
    }
}

但getInt中存在错误。 如果我将其更改为nextInt,则没有随机.. 它用于Minecraft Bukkit。 你能纠正代码吗? 我不明白......

谢谢! 此致,René:)

4 个答案:

答案 0 :(得分:3)

这个

 int sword = rand.getInt(1) + 1;
 int chest = rand.getInt(9) + 1;

 int sword = rand.nextInt(1) + 1;
 int chest = rand.nextInt(9) + 1;

而不是

祝你好运

答案 1 :(得分:1)

getInt()不是一种方法,甚至不会编译。

nextInt()的参数是独占的,因此调用nextInt(1)将始终为零。这可能就是为什么它似乎不是随机的。

此外,不是向胸部添加1然后检查是否等于1,而是不添加任何东西并检查它是否等于零。剑也一样。

答案 2 :(得分:0)

应为nextInt()

int sword = rand.nextInt(1) + 1;
int chest = rand.nextInt(9) + 1;

Random没有getInt。见Random javadoc

答案 3 :(得分:0)

你也可以使用Math.Random(),它会给你一个介于0和0.9999之间的数字....