初始化ArrayList时出错
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文件中读取。我使用了一个tokenizer,它从每一行获取令牌,然后将它们传递给一个String的ArrayList。 ArrayList然后被转移到TownBankRecord的对象er
,然后最终转移到TBlist(记录数据类型)。我有以下错误呃:初始化ArrayList时出错
cannot find symbol
symbol: variable er
location: class nidhin.driver.
任何想法?
您从不声明er
作为变量。您也不使用您声明的课程字段TBR
。这些意图是相同的吗?
是的,呃从来没有宣布过,最初,呃没有什么东西,至于TBR,我会在后面的程序 – 2012-02-21 17:40:51
中使用它,我该如何声明呃? – 2012-02-21 17:41:12
TownBankRecord er = new TownBankRecord(arrayList); – 2012-02-21 17:44:28
变化:
er = new TownBankRecord(arrayList);
TBList.add(er);
这样:
TBList.add(new TownBankRecord(arrayList));
看起来你还没有宣布任何地方er
。您可以在课程中声明er
作为成员。您也可以在方法getDate()
中声明er
,只要确保在使用前初始化er
即可。它完全取决于你的要求。我可以看到你已经使得arrayList
是静态的。如果你一次又一次地阅读同一个文件,那么就没有必要使arrayList
成为一个静态变量,最好的做法是在方法中而不是类成员中声明它。
您打算接受答案吗?你有三个优秀的,正确的答案。你不必接受我的,即使是因为它是最高票数。 – CajunLuke 2012-02-25 01:21:16