2017-09-09 44 views
-3

我在嘗試編寫一段代碼,該代碼段允許我通讀文本文件,然後返回所述列表。但是,當我嘗試添加我的文本文件的下一行時,會出現一個錯誤,該錯誤會不斷將我的.add切換到.addAll,然後嘗試恢復爲.add。我認爲這是因爲我的ArrayList不是一個字符串,所以如何轉換我的ArrayList,因此它的內容可以被讀取和添加?如何將Arraylist(對象)轉換爲Arraylist(String),以便我可以使用.add方法

private ArrayList<Patron> patronList = new ArrayList<Patron>(); 

private ArrayList<Patron> readPatrons(String filename) { 
     ArrayList<Patron> lines = new ArrayList<>(); 
     Scanner s = null; 
     File infile = new File(filename); 
     try{ 
      s = new Scanner(infile); 
     } catch (FileNotFoundException e){ 
      e.printStackTrace(); 
     } 
     while(s.hasNext()) 
      lines.add(s.next()); // Error here. 
     return lines; 
+0

只需將它定義爲ArrayList的''? – Marvin

+1

您應該嘗試將字符串轉換爲'Patron',從您的方法如何定義來判斷。 – Sweeper

回答

1

你可以創建一個對象贊助人,並使其得到更好的...例如

構造
public class Patron{ 
    String name; 
    public patron(String name){ 
     this.name=name; 
    } 
} 

然後同時採取輸入,你可以做這樣的事情

String S=s.next(); 
lines.add(new Patron(S));//or you can directly do lnes.add(new Patron(scan.next())) 
0

此代碼lines.add(s.next());
線是贊助對象的ArrayList,所以你可以把它添加贊助對象。

s.next()會給你一個字符串。所以這就是爲什麼一個錯誤。

創建一個贊助對象,然後添加到線

0
s.next() 

返回一個字符串,而不是贊助人。如果你的贊助類有一個構造函數字符串,創建一個實例贊助人,你將不得不做一些像

lines.add(new Patron(s.next())); 
相關問題