2017-01-26 66 views
-4

好吧,即時通訊非常新的Java和解決方案可能很簡單,所以請忍受我,但基本上我試圖使用一個電影類的數組。我有3個.java文件:測試人員,數據庫和電影類。我的問題是我真的不知道如何讓我的測試儀文件從數據庫文件中識別出電影數組,並且發現每個解決方案都給了我更多的錯誤。java:跨文件使用對象數組

測試儀:

public class DatabaseTester extends MovieDatabase{ 

    public static void main(String[] args) { 

     System.out.println(MovieDatabase.movies[1].getTitle()); 


    } 
} 

數據庫:

public class MovieDatabase { 
    public static Movie movies[] = new Movie[2]; 
    public static void movieDb(String[]args){ 
    movies[1].setTitle("Test Title"); 
    } 
} 

^電影類有一組標題的方法。我並不太確定數據庫的代碼,但這是我能找到的唯一方法,它不會給我帶來錯誤。如果需要的話我會發布完整的電影類,但它很長,所以只在需要

錯誤我得到的,如果我嘗試getTitle();從MovieDatabase ...:

Exception in thread "main" java.lang.NullPointerException at DatabaseTester.main(DatabaseTester.java:35)

我是意識到這個錯誤是從程序中認爲數組未被初始化,所以它只是不能識別我的數據庫文件...如果我嘗試從MovieDatabase中獲取標題,它根本無法識別它,並且會給我一個錯誤或沒有。我無法找到一種方法來解決這個問題,因爲將Movie初始化放在主體中(我已經確認了作品,但這不是我想要做的)。

+1

的可能的複製[什麼是一個「無法找到符號」編譯錯誤是什麼意思?(http://stackoverflow.com/questions/ 25706216/what-do-a-can-find-symbol-compilation-error-mean) – azurefrog

+0

請添加更多代碼以澄清問題 –

+0

因爲您的代碼無法在'DatabaseTester'類中找到movies變量。該變量是在另一個類中定義的,這與您訪問變量的方式不正確。你必須調用'Database.movi​​es [0]',因爲變量是靜態的 –

回答

1

你可以試試下面這樣的改變的代碼在類DatabaseTester

public class DatabaseTester { 
     public static void main(String[] args) { 
       System.out.println(Database.movies[0].getTitle()); 
      } 
    } 
+0

我正在考慮你的靜態數組'電影'是在'數據庫'類中定義的 –

+0

我試圖通過把我的數據庫類的名稱放在數組之前,因爲你演示,但不幸的是沒有運氣。也許我需要以某種方式導入它,或者... – froggy