繁体   English   中英

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

[英]method in class cannot be applied to given types

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

当我编译程序时,我得到了错误:

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

必需:int[]

找到:generateNumbers();

原因:实际参数列表和形式参数列表的长度不同

我在 main 方法中调用方法 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您没有传递任何argument ,因此错误

generateNumbers(int[] numbers)函数定义具有期望整数数组的参数(int[] numbers) 然而,主要是generateNumbers(); 没有任何论据。

要解决它,只需在调用 main.js 中的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))

如果您在使用 Dagger Android 依赖注入时遇到此错误,请首先尝试清理并重建项目。 如果这不起作用,也许删除项目 .gradle 缓存。 有时 Dagger 只是无法在更改时生成所需的工厂类。

"

公共 class 随机数 {

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

}//class结束

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM