课堂中的方法不能应用于给定类型



我正在创建一个程序,该程序在0到9之间生成100个随机整数,并显示每个数字的计数。我正在使用十个整数的数组, counts 存储0s,1s,...,9s。)

编译程序时,我会收到错误:

RandomNumbers.java:9:错误:类RandomNumbers中的方法GenerateNumbers不能应用于给定类型;
generateNumbers();

必需:int []

找到:generateNumbers();

原因:实际和正式的参数列表在长度上有所不同

我在主要方法中称为generateNumbers()和displayCounts()的代码行的错误。

    public class RandomNumbers {
       public static void main(String[] args) {
            //declares array for random numbers
        int[] numbers = new int [99];
        //calls the generateNumbers method
        generateNumbers();
        //calls the displayCounts method        
        displayCounts();
    }
    //***************************************************************** 
    private static int generateNumbers(int[] numbers){
        for(int i = 0; i < 100; i++){
            int randomNumber;
            randomNumber = (int)(Math.random() *10);
            numbers[i] = randomNumber;
        return randomNumber;
        }
    }
    //***************************************************************** 
    private static void displayCounts(int[] numbers){
        int[] frequency = new int[10];
        for(int i = 0, size = numbers.length; i < size; i++ ){
            System.out.println((i) + " counts = " + frequency[i]);
        }
    }//end of displayCounts
    }//end of class

generateNumbers()期望一个参数,而您不会传递一个!

generateNumbers()在设置第一个随机数之后也返回 - 似乎对它正在尝试做的事情有些困惑。

调用generateNumbers(numbers);,您的generateNumbers();期望int[]作为argument ANS,您无需传递,因此错误

generateNumbers(int[] numbers)函数定义具有期望整数数组的参数(int[] numbers)。但是,总的来说,generateNumbers();没有任何参数。

要解析它,只需在主调用generateNumbers()函数时,将数字添加到参数中。

我认为您想要这样的东西。格式已关闭,但应该提供您想要的基本信息。

   import java.util.Scanner;
public class BookstoreCredit 
{
   public static void computeDiscount(String name, double gpa) 
   {
      double credits;
      credits = gpa * 10;
      System.out.println(name + " your GPA is " +
         gpa + " so your credit is $" + credits);
   
   }
   public static void main (String args[]) 
   {
      String studentName;
      double gradeAverage;
      Scanner inputDevice = new Scanner(System.in);
      System.out.println("Enter Student name: ");
      studentName = inputDevice.nextLine();
      System.out.println("Enter student GPA: ");
      gradeAverage = inputDevice.nextDouble();  
      
      computeDiscount(studentName, gradeAverage);
   }
}

在调用函数时将数组作为参数传递,例如

(generateNumbers(parameter),displayCounts(parameter))

如果您使用daggerAndroid依赖注入遇到此错误,请首先尝试清洁和重建项目。如果那不起作用,则可能删除项目.gradle Cache。有时,dagger无法在更改上生成所需的工厂类。

public class RandomNumbers {
    public static void main(String[] args) {
        //declares array for random numbers
        int[] numbers = new int [100];
        //calls the generateNumbers method
        generateNumbers(numbers);     //passing the empty array
        //calls the displayCounts method        
        displayCounts(numbers);       //passing the array filled with random numbers 
    }
    //***************************************************************** 
    private static void generateNumbers(int[] numbers){
        for(int i = 0; i < 100; i++){
            int randomNumber;
            randomNumber = (int)(Math.random() *10);
            numbers[i] = randomNumber;
        } // here the function doesn't need to return.Since array is non primitive data type the changes done in the function automatically gets save in original array.
    }
    //***************************************************************** 
    private static void displayCounts(int[] numbers){
        int count;     
        for(int i = 0, size = 10; i < size; i++ ){
            count=0;
            for(int j = 0; j < numbers.length ; j++ ){
                if(i == numbers[j])
                count++; //counts each occurence of digits ranging from 0 to 9
            }
            System.out.println((i) + " counts = " + count);
        }
    }//end of displayCounts
}//end of class

最新更新