我正在创建一个彩票程序,并第一次尝试链接列表。我将数字数组从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();
}
}
方法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]);
}
您得到的错误说明了一切,您编写的方法不需要参数。当您调用getNumbers()
方法时,您会向它传递i
的值,尽管java并不期望这样,因为您在声明该方法时没有任何参数。