【问题标题】:Trying to pass an array to a different class in Java [closed]尝试将数组传递给Java中的不同类[关闭]
【发布时间】:2020-06-02 16:43:35
【问题描述】:

我正在创建一个彩票程序并第一次尝试链接列表。我将数字数组从 Player 类传递给 Lottery 类,以便我可以显示当前玩家的数字,但它一直给我错误"actual and formal parameters differ in length"

将为中奖号码开设另一个课程,但我正在尝试首先解决此问题。我不确定如何解决这个问题,因为我已经被困了很长一段时间了。

任何帮助将不胜感激。

这是我遇到问题的一段代码,它位于 displayPlayers() method 的 Lottery 类中 -

for(int i = 0; i < 6; i++) {
            System.out.println(currentPlayer.getNumbers(i));
        }
public class LOTTERY
{
    Scanner keyboard = new Scanner(System.in);

    private PLAYER pHead;



    public LOTTERY()
    {
        pHead = null;


    }


    public void displayPlayers() {
        PLAYER currentPlayer = pHead;
        System.out.println("Name: " + currentPlayer.getName());
        System.out.println("Age: " + currentPlayer.getAge());
        currentPlayer.randNum();
        System.out.println("Your Numbers: ");

        for(int i = 0; i < 6; i++) {
            System.out.println(currentPlayer.getNumbers(i));
        }
        menu();
    }

    public void runProg() {

        displayPlayers();
    }

    public static void main(String[] args) {
        LOTTERY lottery = new LOTTERY();
        lottery.runProg();
    }
}

【问题讨论】:

  • 您的 PLAYER getNumbers() 方法不带任何参数。不知道您为什么要尝试将一些变量 i 传递给该方法。编辑:我猜你打算改用getNumbers()[i]getNumbers() 返回一个数组,因此您可以像访问任何其他数组一样访问其元素
  • 你的意思是写currentPlayer.getNumbers()[i]
  • 请查看Java Style Guide。特别是第 16 页的命名约定。
  • 这能回答你的问题吗? Is Java "pass-by-reference" or "pass-by-value"?

标签: java arrays linked-list parameter-passing


【解决方案1】:

getNumbers() 方法不带参数,但您正在尝试传递它i。另外,这个方法返回一个数组,所以你想在循环迭代之前得到这个然后遍历它。

您可以使用增强的for 循环轻松完成此操作:

for (int currentNum : currentPlayer.getNumbers()) {
    System.out.println(currentNum);
}

或者使用标准的for 循环:

int [] arr = currentPlayer.getNumbers();
for (int i = 0; i < arr.length; i++) {
     System.out.println(arr[i]);
}

【讨论】:

    【解决方案2】:

    你得到的错误说明了一切,你写的方法没有参数。当您调用 getNumbers() 方法时,您将 i 的值传递给它,尽管 java 不希望这样,因为您声明了没有任何参数的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2013-12-04
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      相关资源
      最近更新 更多