我有文本.dat文件,我从我的主类加载这个文件并读入我的DataReader类。但我得到错误,我必须将我的修饰符更改为静态。我不能这样做,因为它必须是非静态的。
我被困在这里,如果我的问题在这里或其他地方,我不会起诉。你会检查我的密码并让我知道它是否合适? 下一行也不存储在车辆中并显示null !!
此代码出错:
if(DataReader.loadData(args[0])) { // i get errors here
并要求我将其更改为:public static boolean loadData(String VehicleData) { /// but this code has to be non-static...
(我的教授要求)
主要课程:
public class Project3 {
private static Vehicle[] vehicles;
static int x;
public static void main(String[] args) {
// Display program information
DataReader reader = new DataReader(); // The reader is used to read data from a file
// Load data from the file
**if(DataReader.loadData(args[0]))** { // i get errors here
vehicles= reader.getVehicleData(); // this line also shows null
// Display how many shapes were read from the file
System.out.println("Successfully loaded " + vehicles[0].getCount() +
" vehicles from the selected data file!");
displayMenu();
}
}
DataReader类:
ublic boolean loadData(String VehicleData) {
boolean validData = false;
String line;
try{
// Open the file
BufferedReader reader = new BufferedReader(new FileReader("VehicleData.dat"));
//Read File Line by line
while((line=reader.readLine()) !=null) {
addVehicle(line.split(","));
}
reader.close();
vehicles = Array.resizeArray(vehicles, vehicleCount);
validData = true;
}
答案 0 :(得分:2)
您应该使用之前创建该行的DataReader
实例(reader
):
DataReader reader = new DataReader(); // The reader is used to read data from a file
// Load data from the file
if(reader.loadData(args[0])) {
答案 1 :(得分:1)
由于loadData
是您应该使用的实例方法:
if (reader.loadData(args[0])) {
答案 2 :(得分:1)
您已经创建了一个阅读器实例,但之后选择不使用它......
DataReader reader = new DataReader(); // The reader is used to read data from a file
if(DataReader.loadData(args[0]))
您应该只使用您可用的实例
DataReader reader = new DataReader(); // The reader is used to read data from a file
if(reader.loadData(args[0]))
答案 3 :(得分:0)
是的,将DataReader
更改为reader
。您已创建名为DataReader
的{{1}}对象,但您在类reader
上调用loadData()
方法,而不是在对象DataReader
上调用reader
方法。如果您没有该对象的实例并且正在调用该方法,则它必须是静态方法。您可以随时调用静态方法,它们不必位于特定对象上。