Java:'.class'在将数组传递给函数时出现预期的错误

She*_*916 5 java arrays parameter-passing

我正在上一门java课,但已经离开了一段时间.

试图让这个排序程序工作:

import java.util.*;
public class Assignment1 
{
   private int[] nums;
   private int[] ast;

   private int n;

   public void sort(int[] vals)
   {
      this.nums = vals;
      n = vals.length;
      this.ast = new int[n];
      merges(0, n - 1);
   }   

   private void merges(int bot, int top)
   {
      if (bot < top)
      {
         int mid = bot + (top - bot) / 2;
         merges(bot, mid);
         merges(mid + 1, top);
         merge(bot, mid, top);
      }
   }

   private void merge(int bot, int mid, int top)
   {
      for (int i = bot; i <= top; i++)
      {
         ast[i] = nums[i];
      }
      int i = bot;
      int j = mid + 1;
      int k = bot;
      while (i <= mid && i <= top)
      {
         if (ast[i] <= ast[j])
         {
            nums[k] = ast[i];
            i++;
         }
         else
         {
            nums[k] = ast[j];
            j++;
         }
         k++;
      }
      while (i <= mid)
      {
         nums[k] = ast[i];
         k++;
         i++;
      }
   }

   private void show()
   {
      System.out.print("Sorted Array:  ");
      for(int l=0;l<nums.length;l++)
      {
         System.out.print(nums[l] + "  ");
      }

   }
   public static void main(String[] args) 
   {
      Assignment1 a = new Assignment1();
      Scanner scan = new Scanner(System.in);
      System.out.print("\nArray Size: ");
      int s = scan.nextInt();
      int[] array = new int[s];
      for(int x=0;x<s;x++)
      {
         System.out.print("Enter Element " + (x + 1) + ":");
         array[x] = scan.nextInt();
      }


      a.sort(array[]);
      a.show();
   }
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是这样的:

Assignment1.java:82: error: '.class' expected
  a.sort(array[]);
Run Code Online (Sandbox Code Playgroud)

我知道这是基本的东西,但最基本的东西是最朦胧的......

mde*_*itt 7

我相信编译器认为你试图传入一个类类型,sort因为你[]在调用中添加了after数组,sort这就是你声明数组类型的方式.

只是改变

a.sort(array[]) 
Run Code Online (Sandbox Code Playgroud)

 a.sort(array)
Run Code Online (Sandbox Code Playgroud)

因为您已经在方法中早先初始化arrayint[]类型/数组.

您只需要[]在初始化期间添加.之后,引用数组的变量名称就像任何其他变量的变量名称一样.