【发布时间】:2020-10-05 21:51:37
【问题描述】:
我想在具有 try-catch 块的方法中返回一个对象。如下所示,该方法接收一个 CSV 文件,读取serialNumber,并应该从 CSB 文件中返回一个带有名称、年份等属性的图书对象。我只想返回这个对象,但鉴于foundName 是本地对象,因此我不知道在范围内的哪个位置返回它,因此我将无法返回新对象r。
public static ReadCSVExample1 readBook(String filename, String serialNumber){
try{
String line = "";
BufferedReader br = new BufferedReader(new FileReader(filename));
String foundName = "";
while ((line = br.readLine()) != null){
String[] values = line.split(",");
for (int z = 0; z<values.length; z++){
if (values[z].equals(serialNumber)){
System.out.println(values[z]+ " found!");
foundName = values[z+1];
System.out.println(values[z+2]);
System.out.println(values[z+3]);
}
}
}
} catch (FileNotFoundException e){
System.err.println(e);
} catch (IOException e){
System.err.println(e);
}ReadCSVExample1 r = new ReadCSVExample1(foundName);
return r;
}
【问题讨论】:
-
在您的 for 循环 if 语句块中(在控制台最后一个输出下方的底部)添加:
return new ReadCSVExample1(foundName);。让位于方法底部的return语句返回null:return null;,表示未找到序列号。