我有文本.dat文件,我从我的主类加载这个文件并在我的 DataReader 类中读取。 但是我收到错误,我必须将修饰符更改为静态。我不能这样做,因为它必须是非静态的。
我被困在这里,如果我的问题在这里或其他地方,我不会起诉。 你会检查我的代码并让我知道它是否可以吗?下一行也不会存储在车辆中并显示空!!
此代码收到错误:
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();
}
}
数据读取器类:
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;
}
应该使用之前创建行的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])) {
您已经创建了读取器的实例,但随后选择不使用它...
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]))
由于loadData
是一个实例方法,因此您应该使用:
if (reader.loadData(args[0])) {
是的,将DataReader
更改为reader
。您已经创建了名为 reader
的DataReader
对象,但您是在类DataReader
上调用loadData()
方法,而不是在对象reader
上调用方法。如果您没有对象的实例并且正在调用该方法,则它必须是静态方法。您可以随时调用静态方法,它们不必位于特定对象上。