0

基本的に、2つのコードスニペットがあります。を設定して返す関数を呼び出しますが、ArrayListいくつか問題があります。2つのコードは次のとおりです。

  1. 受信を定義しArrayList、次に戻りをキャッチしArrayListます。

    ArrayList agentArray = new ArrayList <>(); agentArray = agentListings(strInput);

  2. ArrayListを作成し、それを返します。

    public static ArrayList agentListings(String strInput) throws FileNotFoundException {
         File inputFile = new File(strInput);
         Scanner in = new Scanner(inputFile);
         ArrayList<String> agentArray = new ArrayList<>();
    
         while (in.hasNextLine()) {
             agentArray.add(in.next());
             in.next();
             in.next();
             in.next();
         }
    
         Collections.sort(agentArray);
         in.close();
         return agentArray;
     }
    

問題は、一度返却したところに戻そうとすると、ArrayListうまくいくように見えることです。しかし、それをファイルに書き込もうとすると、このコードからこのエラーがスローされます。

out.write(agentArray.get(1)); 

単純なテキストなどで動作するバッファライターを使用せずにファイルに書き込んでいます。

基本的に、ArrayList「agentArray」をファイルに書き込む方法がわかりません。私がしている明らかなエラーはありますか?

==============================================

編集: エラーを含めるのを忘れました。にカーソルを合わせるout.write(agentArray.get(1));agentArray下線が引かれ、エラーが発生します。

シンボルシンボルが見つかりません:変数agentArray
場所:クラスblabla.blabla

4

2 に答える 2

2

次のようなエラーが発生した場合:

cannot find symbol symbol: varible agentArray
location: class blabla.blabla

1) これはコンパイル エラーであるため、プログラムを実行しようとしてもいけません。

2)エラーメッセージは、実際に問題が何であるかを示しています...コンパイラの観点から考えてみると。それはこう言っています:

「コードのこの時点で、スコープ内の の宣言を探しましたが、見つかりませんでした。スコープ外の宣言agentArrayは使用できないため、探しませんでした。心が読めない…」

ここで、問題がどこにあるかを正確に把握できません。これは、スニペットのみを示しており、それらに関連するコードを示していないためです。しかし、その基本的な Java スコープ規則を理解していると仮定すると、それを理解できるはずです。


エラー メッセージを投稿するときは、一部の要約/ボードラライズ/マングル バージョンではなく、実際のエラー メッセージをカット アンド ペーストする必要があります。時間をかけて答えてもらいたいのであれば、時間をかけてきちんと質問する必要があります。

于 2012-05-20T03:05:35.237 に答える
0

メソッドの外でagentArrayを宣言するときにタイプを追加するかもしれません

ArrayList<String> agentArray = new ArrayList<>(); agentArray =agentListings(strInput);
于 2015-02-04T05:26:12.587 に答える