public ArrayList<detailTom> read()
{
try
{
/*System.out.println("Hello");*/
BufferedReader in = new BufferedReader(new FileReader("G:/sample.txt"));
String data;
ArrayList <String> list = new ArrayList<String>();
ArrayList<String> tomList= new ArrayList<String>();
ArrayList<detailTom> tomData = new ArrayList<detailTom>();
while((data= in.readLine())!=null)
{
/*System.out.println(data);*/
String[] splits=data.split(" ");
for(int i=0;i<splits.length;i++)
{
if (splits[i].equals("tom"))
{
detailTom dummy= new detailTom();
dummy.name="tom";
dummy.mark1=Integer.parseInt(splits[1]);
dummy.mark2=Integer.parseInt(splits[2]);
dummy.mark3=Integer.parseInt(splits[3]);
dummy.mark4=Integer.parseInt(splits[4]);
dummy.mark5=Integer.parseInt(splits[5]);
tomData.add(dummy);
}
}
}
}
catch (FileNotFoundException ex)
{
Logger.getLogger(MyInterface.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex)
{
Logger.getLogger(MyInterface.class.getName()).log(Level.SEVERE, null, ex);
}
return tomData;
}
您好!
我正在尝试返回一个变量tomData,它是ArrayList类的一个对象。 detailTom是一个包含变量,getter,setter等的类。我想要做的是我的方法read()返回tomData。但是我在行返回tomData时遇到错误。
错误说: -
无法找到符号 符号:变量tomData
答案 0 :(得分:5)
您已在tomData
- 块中声明了try
,因此在外面无法看到。尝试在try
- 阻止之前移动声明。
ArrayList<DetailTom> tomData;
try {
...
tomData = ...
另请注意,我已采用更标准的命名约定:类名称应以大写字母开头。
答案 1 :(得分:4)
tomData
超出范围。有很多方法可以解决这个问题,但最简单的方法是在<{em} tomData
块之前声明并初始化try
。
答案 2 :(得分:3)
tomData
在try block
内声明。在try块中声明的变量在其外部不可见。所以只需从tomData
声明try block
。试试这个
public ArrayList<detailTom> read()
{
ArrayList<detailTom> tomData = null;
try
{
/*System.out.println("Hello");*/
BufferedReader in = new BufferedReader(new FileReader("G:/sample.txt"));
String data;
ArrayList <String> list = new ArrayList<String>();
ArrayList<String> tomList= new ArrayList<String>();
tomData = new ArrayList<detailTom>();
while((data= in.readLine())!=null)
{
/*System.out.println(data);*/
String[] splits=data.split(" ");
for(int i=0;i<splits.length;i++)
{
if (splits[i].equals("tom"))
{
detailTom dummy= new detailTom();
dummy.name="tom";
dummy.mark1=Integer.parseInt(splits[1]);
dummy.mark2=Integer.parseInt(splits[2]);
dummy.mark3=Integer.parseInt(splits[3]);
dummy.mark4=Integer.parseInt(splits[4]);
dummy.mark5=Integer.parseInt(splits[5]);
tomData.add(dummy);
}
}
}
}
catch (FileNotFoundException ex)
{
Logger.getLogger(MyInterface.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex)
{
Logger.getLogger(MyInterface.class.getName()).log(Level.SEVERE, null, ex);
}
return tomData;
}
答案 3 :(得分:3)
您在底部的返回tomData发生在声明tomData的try块之外,因此它超出了范围,请尝试在方法顶部声明tomData