Can';t通过Java中返回Int数组的函数传递Int变量

Can';t通过Java中返回Int数组的函数传递Int变量,java,arrays,Java,Arrays,我的守则如下: int diceAmount = sInput.nextInt(); int[] dice = dice.rollDice(diceAmount); java类在这里: public static int[] rollDice(int diceAmount) { int[] dice = new int[diceAmount]; for(int i=0;i < diceAmount;i++){ dice[i] = (

我的守则如下:

int diceAmount = sInput.nextInt();
int[] dice = dice.rollDice(diceAmount);
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;
    }
public static int[]rollDice(int diceAmount){
整数[]骰子=新整数[骰子数量];
for(int i=0;i
我得到的错误是: “无法对数组类型int[]调用rollDice(int)”

考虑到我所做的只是传递一个整数变量,并将返回数组设置为我自己的dice变量,它应该可以工作

如果我不设置骰子,它就会工作;等于任何东西,但那不是我想要的


谢谢。

这是因为
Dice
对象实例的名称是
Dice
以及整数数组。因此,编译器推断您希望对整数数组调用
rollDice

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

这是因为
Dice
的对象实例的名称是
Dice
以及整数数组。因此,编译器推断您希望对整数数组调用
rollDice

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

将类名视为骰子,因此正确的函数调用应该是

int diceAmount = sInput.nextInt();

int[] dice = Dice.rollDice(diceAmount);
请注意,问题是


您的对象名和数组名都相同,这就是编译器给您错误的原因。

将类名视为骰子,因此正确的函数调用应该是

int diceAmount = sInput.nextInt();

int[] dice = Dice.rollDice(diceAmount);
请注意,问题是


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

s/dice.rollDice/dice.rollDice/你试图调用数组上的方法而不是对象上的方法,那么你怎么能要求java调用要调用的rollDice方法呢你怎么能让java调用一个rollDice方法呢?这很有效,谢谢。这很有效,谢谢。这也很有效,谢谢你注意到了。这也很有效,谢谢你注意到了。