gpt4 book ai didi

java - 为什么我需要 .class 来调用方法?

转载 作者:行者123 更新时间:2023-12-02 04:55:45 26 4
gpt4 key购买 nike

我想知道为什么会出现这些错误以及如何修复它:

Main.java:12: error: '.class' expected
populateArray(int[] aRand);
^
Main.java:12: error: ';' expected
populateArray(int[] aRand);

我得到的说明在评论中,我只是按照我认为的说明的含义进行操作。我想也许我应该这样做 populateArray();在 main 方法中,但它与 public void populateArray(int[] array){} 的签名不匹配.

import java.util.Random;

public class Main {
public static void main(String args[])
{
/*
(a) Create an array of integers called aRand of capacity 20 and initialize its entries to 0.
*/
int aRand[] = new int[20];

populateArray(int[] aRand);

}

/*
(b) Populate the array in a method called populateArray(int[] array) where array is the one you want to populate.
This method returns void.
*/
public void populateArray(int[] array){
Random rand = new Random();
for (int i=0; i<array.length; i++){
array[i] = rand.nextInt();
System.out.println(array[i]);
}
}
}

最佳答案

只是一些小事情!

首先,您已经将 populateArray 声明为采用 int[] 的方法,因此当您实际调用该方法。

第二,您不能从静态上下文中调用非静态方法。由于您的 main 方法是静态的,因此您无法在其中调用非静态方法 populateArray 。出于您的目的,只需将 populateArray 声明为静态方法就可以了。

import java.util.Random;

public class Main {
public static void main(String args[])
{
/*
(a) Create an array of integers called aRand of capacity 20 and initialize its entries to 0.
*/
int aRand[] = new int[20];

populateArray(aRand); // We already know aRand is an int[]

}

/*
(b) Populate the array in a method called populateArray(int[] array) where array is the one you want to populate.
This method returns void.
*/
public static void populateArray(int[] array){
Random rand = new Random();
for (int i=0; i<array.length; i++){
array[i] = rand.nextInt();
System.out.println(array[i]);
}
}
}

作为引用,这里有一个有用的 StackOverflow 答案,讨论何时应该使用静态方法与实例方法:Java: when to use static methods .

关于java - 为什么我需要 .class 来调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56412072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com