Загрузите файл.dat и прочитайте

У меня есть текстовый файл.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();
    }
}

Класс 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;
    }   

4 ответа

Решение

Вы создали экземпляр читателя, но затем решили не использовать его...

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]))

Вы, вероятно, должны использовать 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])) {

Как loadData это метод экземпляра, который вы должны использовать:

if (reader.loadData(args[0])) {

Да, изменить DataReader в reader, Вы создали DataReader названный объект reader но ты звонишь loadData() метод в классе DataReader а не на объекте reader, Если у вас нет экземпляра объекта и вы вызываете метод, он должен быть статическим. Вы можете вызывать статические методы, когда захотите, они не обязательно должны быть на конкретном объекте.

Другие вопросы по тегам