2015-09-14 87 views
1

我對java還很陌生。我正嘗試從文本文件創建一個對象數組。文本文件有一個名稱列表,並使用這些名稱,我試圖創建對象。這是我創建的用於從文本文件輸入創建對象的方法。編譯時會出錯。我不確定我做錯了什麼。從文本文件輸入創建對象

public boolean createObjects(PersonNames2[] person) throws Exception 
    { 
     boolean found = false; 
     int position = 0; 
     if(canCreateObjects() == true) 
     { 
      for(int i = 0; i < persons.length && !found; i++) 
      { 
       if(persons[i] == null) 
       { 
        position = i; 
        found = true; 
       } 
      } 
      Scanner reader = new Scanner(file); 
      while(reader.hasNext()) 
      { 
       person[position] = new PersonNames2(); 
       position++; 
      } 
      reader.close(); 
      return true; 
     } 
     return false; 
    } 
+0

什麼是錯誤? –

+0

分享您的編譯錯誤.... –

+2

參數是'person'和你正在使用'persons' – Rustam

回答

0

我已經設法得到這個工作。謝謝!這是工作代碼。

public static List<Person> loadPersons(String path) throws Exception 
    { 
     BufferedReader reader = new BufferedReader(new FileReader(path)); 
     List<Person> persons = new ArrayList<Person>(); 

     while((line = reader.readLine()) != null) 
     { 
      System.out.println("Adding " +line); 
      persons.add(new Person(line)); 
     } 

     return persons; 
    } 
2

error: array dimension missing PersonNames person[] = new Person[];

這顯然告訴你是沒給你數組的大小。

你需要寫

PersonNames person[] = new Person[size]; // For ex : 10 or any X 

數組的大小是固定的,你需要告訴它的尺寸,同時聲明/初始化它的自我。

更新:

因爲你是從一個文件中,並沒有關於數組的長度想法讀取數據時,最好選擇ArrayList而不是陣列。在向其添加元素時,ArrayList的大小會增加。

+0

如果我要創建一個具有一定大小的數組,我只需要PersonNames person = new Person [5]。 我怎麼能這樣做,如果我使用文件中的行數作爲大小 –

+0

@MichelleAshwini更新我的答案:)希望可以幫助 –

+0

@SURESHATTA這是有道理的。我現在正在嘗試。會回來的。 –

0

如果您是Java新手,那麼這個小巧的GitHub項目對您來說可能是一個很好的提示。