2012-02-21 6 views
1
public class driver 
{ 
private static ArrayList<String> arrayList ; 
TownBankRecord TBR = new TownBankRecord(); 
ArrayList<Record> TBList = new ArrayList<Record>(); 

public void getDate() 
{ 
try 
{ 

    BufferedReader br = new BufferedReader (new FileReader ("data/bank-data.csv")); 
    String line= " "; 
    int tokenCount=0; 
    //BankRecord bank= new BankRecord(); 

    while((line=br.readLine())!=null) 
    { 
     if (!line.equals(",")) 
     { 
      StringTokenizer st = new StringTokenizer(line,","); 
      while (st.hasMoreTokens()) 
      { 
       arrayList.add(st.nextToken()); 
       tokenCount++; 
      } 
     } 

     if (tokenCount==11) 
     { 
      er = new TownBankRecord(arrayList); 
      TBList.add(er); 

      tokenCount=0; 
     } 
    } 
} 
catch (FileNotFoundException ex) 
    { 
     System.out.println(ex.getMessage()); 
    } 
catch (IOException e) 
{ 
    System.err.println("Caught IOException: " 
         + e.getMessage()); 

} 
} 
} 

上記のコードは、CSVファイルから読み取ります。私は各行からトークンを取得したトークナイザを使用し、それらをStringのArrayListに転送します。その後、ArrayListはTownBankRecordのオブジェクトerに転送され、最後にTBlist(Recordデータ型)に転送されます。私には、次のエラーがあります。ArrayListを初期化する際のエラー

cannot find symbol 
symbol: variable er 
location: class nidhin.driver. 

アイデアをお持ちですか?

+0

回答を受け入れるつもりですか?優れた3つの正しい答えがあります。あなたが最高の投票権を持っているからといって、私を受け入れる必要はありません。 – CajunLuke

答えて

2

erを変数として宣言することは決してありません。宣言するクラスフィールドは、TBRも使用しないでください。これらは同じものを意図していますか?

+0

はい、erは決して宣言されていません。最初は、TBRの場合は何もありません。これは後でプログラムで使用します –

+0

どうすれば宣言できますか? –

+2

TownBankRecord er =新しいTownBankRecord(arrayList); –

1

変更:これに

er = new TownBankRecord(arrayList); 
TBList.add(er); 

:あなたはどこにでもerを宣言していないよう

TBList.add(new TownBankRecord(arrayList)); 
1

が見えます。クラスの中でerをメンバーとして宣言できます。メソッドgetDate()erを宣言することもできます。使用する前にerを初期化してください。それはあなたの要求に完全に依存します。私はあなたがarrayListを静的にしたことが分かります。同じファイルを何度も読んでいるのであれば、arrayListを静的変数にする必要はなく、クラスメンバーではなくメソッドで宣言するのがベストプラクティスです。

関連する問題