【发布时间】:2020-11-12 00:40:28
【问题描述】:
(编辑,更新代码) 我正在尝试完成从 CSV 文件中读取数组并返回汽车数组列表的任务。我通过了五个测试中的两个,但我认为我的问题是最后的“返回 null”。我不确定我应该返回什么。我试过翻阅我们的讲义并问过教授,他们都没有帮助。我不是在问答案,我只需要指出正确的方向
到目前为止,这是我的代码:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
/**
* Practice reading CSV files
*
* @author 250 Instructors
* @version Feb 2017
*
*/
public class CarsForSale {
/**
* Read an array from CSV file
*
* @param aFile
* - string pointing to file
* @return the array list of Cars; return null if error encountered
*/
public static ArrayList<Car> getCarsFromCSVFile(String aFile) {
ArrayList<Car> cars = new ArrayList<Car>();
File file = new File(aFile);
try {
Scanner scan = new Scanner(file);
while (scan.hasNext()) {
String car = scan.nextLine();
}
scan.close();
}
catch (FileNotFoundException e) {
System.out.println("Failed to open file " + aFile);
System.out.println(e);
return null;
}
return cars;
}
}
【问题讨论】:
-
如果您的代码成功,我认为您想返回一个实际的数组列表,例如
return cars;。您的返回类型是ArrayList<Car>而不是ArrayList<String>,因此您需要创建 Car 对象并将它们添加到数组中,而不仅仅是创建字符串数组ArrayList<Car> cars = new ArrayList<Car>(); -
@sorfiend 根据您之前发表的评论,我注意到我需要将
ArrayList<String>更改为ArrayList<Car>。这让我又通过了一项测试,现在它正朝着正确的方向前进。