无法通过Java中的函数传递Int变量返回Int数组

时间:2016-03-21 19:09:03

标签: java arrays

我的代码如下:

int diceAmount = sInput.nextInt();
int[] dice = dice.rollDice(diceAmount);

Dice.java类在这里:

    public static int[] rollDice(int diceAmount) {
       int[] dice = new int[diceAmount];
       for(int i=0;i < diceAmount;i++){
          dice[i] = (int)(Math.random()*6) + 1;
       }
       return dice;
    }

我得到的错误是: “无法在数组类型int []”。

上调用rollDice(int)

它应该工作,考虑我正在做的是通过一个整数变量并将返回的数组设置为我自己的骰子变量。

如果我没有设置dice.rollDice(diceAmount),它会起作用;等于什么,但那不是我想要的。

谢谢。

3 个答案:

答案 0 :(得分:2)

int[] dice = Dice.rollDice(diceAmount);
             ^

答案 1 :(得分:1)

这是因为Dice的对象instante的名称是dice以及整数数组。因此编译器推断出你想在整数数组上调用rollDice

Dice dice = new Dice();
int diceAmount = sInput.nextInt();
int[] diceArray = dice.rollDice(diceAmount);

答案 2 :(得分:1)

将类名称视为Dice,因此正确的函数调用应为

int diceAmount = sInput.nextInt();

int[] dice = Dice.rollDice(diceAmount);

请注意问题是

你的对象名和数组名都和编译器给你错误的原因相同。