2012-09-26 54 views
0

我試圖用這條線在Java中的一些數組進行排序:的Java:找到長,需要INT

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

其中「a」是一個已經初始化int數組。當我嘗試編譯它時,我被告知2是一個很長的,而不是一個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是一個可接受的值,並調用相同的方法(使用不同的參數)在代碼的其他部分中工作。

+0

你可以在這裏添加你的代碼嗎?什麼是sortFacade? – rokonoid

+1

此處也發佈例外情況。它是否告訴你該方法需要一個int並且正在接收很長時間?或者相反呢? –

+1

文字'2'是一個'int',所以你可能會誤解消息。您應該直接從IDE或終端窗口複製/粘貼消息。 –

回答

0

如果aint[]陣列,那就似乎您收到的錯誤是因爲sortFacade.sortlong返回類型和你試圖把它分配給了a陣列 - 這是非法的。

編譯原因sortFacade.sort(2, false, a);是因爲你沒有把它分配給任何東西。如果你說:long b = sortFacade.sort(2, false, a);它應該編譯和工作。

1

這基本上是爲自己說話。

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

你自己說的,變量a是一個整數數組。上述錯誤告訴您雖然該方法返回long,但您需要它返回一個整數數組int[],因爲您試圖將long值指定給a