2017-09-09 12 views
-3

私はテキストファイルを読み込み、そのリストを返すコードスニペットを作成しようとしています。しかし、テキストファイルの次の行を追加しようとすると、常に.addAllに.addを切り替え、.addAllに戻ろうとするエラーが発生します。これは、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

ような何かを行うことができますか? – Marvin

+1

あなたのメソッドがどのように定義されているかを判断し、おそらく文字列を 'パトロン'に変換しようとするべきでしょう。 – Sweeper

答えて

1

ような何かをしなければならないでしょう、あなたは、たとえば...優れていることが、それにパトロンオブジェクトとコンストラクタを作成することができます

その後、
public class Patron{ 
    String name; 
    public patron(String name){ 
     this.name=name; 
    } 
} 

入力をしながら、あなたは、単に `ArrayListの `としてそれを定義し、この

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())); 
関連する問題