2015-04-02 79 views
0

有人可以告訴我什麼是我沒有看到。 從書中練習。 創建一個名爲SortingTest的類。在它中,創建一個接受int值數組作爲參數的方法,並向終端輸出排序後的元素(最小元素第一個)將參數傳遞給方法不兼容的類型

試圖編譯時,出現錯誤:不兼容的類型。 AbcArray不能轉換爲int [] 從我的理解,我傳遞一個int []值給一個方法,期望一個int []值。 (我很抱歉,如果我的錯誤是如此明顯,我還在學習)

public class AbcArray { 

    private int[] myArray; 

    public AbcArray(){ 
    myArray = new int[]{55,58,57,54,56}; 
    } 

    public int[] theValues(){ 
    return myArray; 
    } 
} 

import java.util.Arrays; 

public class SortingTest{ 

    public SortingTest() {} 

    public void sortArray(int[] outsideArray){ 
    Arrays.sort(outsideArray); 
    System.out.println(outsideArray); 
    } 
} 
+1

你沒有在代碼中調用sortArray。缺少'main'? – 2015-04-02 07:54:11

+0

@Adrian,即時通訊使用BlueJ IDE – 2015-04-02 07:55:28

+0

@RyanG這不是問題。你說「我將一個int []值傳遞給需要int []值的方法」 - 你在哪裏做的?你沒有發佈你的''main''方法。 – f1sh 2015-04-02 07:57:31

回答

0

與您的代碼第一個問題是AbcArray代碼錯誤的構造函數。您需要

public AbcArray(){ 
    myArray = new int[]{55,58,57,54,56}; 
} 

下一步缺少的代碼,你沒有張貼更換

public ArraysData(){ 
    myArray = new int[]{55,58,57,54,56}; 
} 

。讓我們假設它看起來如下:

public class Main{ 
    public static void main(String[] args){ 
     AbcArray a = new AbcArray(); 
     SortingTest st = new SortingTest(); 

     st.sortArray(a); 
    } 
} 

嘗試在actual argument AbcArray cannot be converted to int[] by method invocation conversion建立這個代碼的結果。發生這種情況是因爲您正在將整個類AbcArray傳遞給方法sortArray,以解決您需要傳遞可通過使用方法theValues()可用的AbcArray中的值。因此,您的代碼將如下所示:

public class Main{ 
    public static void main(String[] args){ 
     AbcArray a = new AbcArray(); 
     SortingTest st = new SortingTest(); 

     st.sortArray(a.theValues()); 
    } 
} 

此外,您無法將數組打印到標準輸出中。在打印任何東西之前,請看Arrays.toString()方法。

+0

抱歉,關於錯誤的構造函數,已編輯。 – 2015-04-02 08:11:33

+0

這個答案爲什麼downvoted? – f1sh 2015-04-02 08:17:43

+1

@ f1sh因爲這個答案也斷言,OP需要一個'main'方法,它是_wrong_。如果他刪除,我會刪除我的投票,因爲其他的東西是正確的。 – Tom 2015-04-02 08:34:01

相關問題