0

我正在尝试使用这一行对 Java 中的一些数组进行排序:

a = sortFacade.sort(2, false, a);

其中 'a' 是一个已经初始化的 int 数组。当我尝试编译它时,我被告知 2 是 long,而不是 int。我试过用 (int)2 铸造它,但没有运气。

我也试过这条线

sortFacade.sort(2, false, a);

并且代码编译。

有谁知道解决这个问题?

编辑:这是我在终端中收到的消息:

Experimenter.java:146: incompatible types
found   : long
required: int[]
        a = sortFacade.sort(2, false, a);
                           ^

在这样的代码中可以找到这一行:

public static void Experiment1()
{
   for(int size = 5000; size <= 100000; size = size + 5000)
   {
     int[] a randomArray(size, 1000); //a random array of size 'size' and values from 1 - 1000
     a = sortFacade.sort(2, false, a);
     /** This is where the error occurs. 2 specifies insertion sort (error occurs 
      with other acceptable numbers here as well,false specifies descending
      order, 'a' specifies the array to be sorted.*/
   }
}

SortFacade 是一个与我所有不同的排序算法交互的外观。2 是一个可接受的值,并且对相同方法(具有不同参数)的调用在代码的其他部分确实有效。

4

2 回答 2

1

这基本上不言自明。

Experimenter.java:146: incompatible types
found   : long
required: int[]

你自己说变量a是一个整数数组。上面的错误告诉您,尽管该方法返回一个long,但您要求它返回一个整数数组int[],因为您尝试将该long值分配给a

于 2012-09-26T14:08:10.473 回答
0

如果a是一个int[]数组,那么您收到的错误似乎是因为sortFacade.sort返回类型为long并且您试图将其分配给a数组 - 这是非法的。

编译的原因sortFacade.sort(2, false, a);是因为您没有将它分配给任何东西。如果你说:long b = sortFacade.sort(2, false, a);它应该编译并工作。

于 2012-09-26T01:21:38.800 回答