2016-07-28 35 views
-3

Eclipse告訴我,「表達式的類型必須是數組類型,但它解析爲劇院」(我爲我的二維數組創建的對象的類)在最後一行代碼我有下面。具體在這裏 - > [行]我試圖簡單地打印出一個2D數組。但我得到一個錯誤

這只是我在我的Java類中正在開展的一個較大項目的一小部分。大家可能都很熟悉,我必須使用2D陣列打印和實施劇院座位表。我必須編寫價格搜索,座位搜索等方法。現在,我只是試圖初始化二維數組,然後將一些值放入其中並打印出來。任何幫助深表感謝。

public class Theater { 
//int[][] x = new int[9][10]; 
int y[][]; 

    public Theater(){ 
     //Initialize array 
     for (int row = 0; row < 3; row++) 
      for (int column = 0; column < 10; column++) 
       y[row][column] = 10; 
    } 

    public static void main(String[] args){ 
     Theater a = new Theater(); 

     for(int i = 0; i < 3; i++) 
      for (int row = 0; row < 9; row++) 
       for (int column = 0; column < 10; column++) 
        System.out.println(a[row][column]); 
+0

'a'不是一個數組,它只是一個'Theater'類型的對象。 – Kon

+0

確保你也初始化'y'。如果它仍然是'null',你不能指定'y'的索引值。 – 4castle

+0

['Arrays.deepToString(Object [])'](https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#deepToString-java.lang.Object:A- )是你想要的。而且,你需要訪問數組'y'(所以'a.y')。 –

回答

0

[]運算符需要應用於一個數組表達式。由於Theater不是數組,因此會出現編譯時錯誤。你可能想訪問Theater實例的y領域:

... 
System.out.println(a.y[row][column]); 

此外,你還需要使用它之前創建y數組:

public Theater(){ 
    this.y = new int[9][10]; 
    ... 

否則這將導致NullPointerException試圖寫的時候寫入數組(y[row][column] = 10;)。

+0

謝謝你們。一旦我初始化了y數組並使其成爲a.y而不是僅僅讓它打印出來。現在我正試圖弄清楚如何循環遍歷十次。但那是另一個問題。再次感謝 :-) –

相關問題