2016-03-30 26 views
0

私はプロのキャリアの名前で複数の行を含む.txtファイルを読み込もうとしています。私はスキャナを作成しましたが、スキャナーが読み込んだものを追加してarrayListに追加しようとすると、このエラーがポップアップします。メソッドadd ArrayList <ClassName>は引数(String)には適用されません。

ArrayList型のメソッドadd(ClassName)は、引数(文字列)

ArrayList<Claseqla> clista = new ArrayList<Claseqla>(); 

     Scanner s = new Scanner(new File("texto.txt")); 

     while(s.hasNextLine()) 
     { 
      **clista.add(s.nextLine());** 
     } 

これは別のクラス内のコードです。 太字のマークが付いた行は、エラーがポップアップする場所です。 clistaはわずか2つの属性がありますが、私はちょうど1つの文字列を埋め要素と他の空(あっても可能ですか?)

+1

新しい 'Claseqla'オブジェクトを作成し、その文字列要素の1つを設定し、そのオブジェクトをリストに追加します。繰り返し... –

+0

クラスを印刷したい場合は、http://stackoverflow.com/questions/29140402/how-do-i-print-my-java-object-without-getting-sometype2f92e0f4 –

+0

を読んでください。テキスト、今私はそれを印刷することができます。どうもありがとう。 –

答えて

2

s.nextLine()Stringを返してリストに追加したいと思います。しかし、ArrayListには汎用タイプClaseqlaがあります。 s.nextLine()呼び出しから取得した文字列を使用してClaseqlaオブジェクトを作成し、そのオブジェクトをArrayListに追加する必要があります。

+0

ありがとう!これはうまくいきましたが、唯一の問題は、System.out.println(clista)のようなwhioleリストを印刷するときです。表示はClaseqla値のアドレスのように見えます。 –

+0

印刷されたテキストと同じ量の要素が得られますが、アドレスのように見えます。 ArrayList内の文字列の実際の値をどのように出力できますか? (もう一度ありがとう!) –

1

Claseqlaクラスには2つの属性があると言っているようです。もしそうなら、あなたはClaseqlaオブジェクトを作成し、これがasummingさs.nextlineと属性()

while(s.hasNextLine()) 
{ 
    Claseqla cq = new Claseqla(); 
    cq.setCareer(s.nextLine()); 
    clista.add(cq); 
} 

のいずれかの値を設定することができるあなたの持っているあなたのClaseqlaクラスでのキャリア(文字列)という名前の属性を持ちますそのそれぞれのセッター機能。

+0

これはまた多くの助けになりました!ありがとう –

関連する問題