1

テキスト .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;
    }   
4

4 に答える 4

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])) {
于 2012-11-20T00:02:40.583 に答える
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]))
于 2012-11-20T00:05:51.410 に答える
1

インスタンスメソッドと同様loadDataに、次を使用する必要があります。

if (reader.loadData(args[0])) {
于 2012-11-20T00:03:26.893 に答える
0

はい、に変更DataReaderreaderます。DataReaderという名前のオブジェクトを作成しましたが、オブジェクトではなくクラスでメソッドをreader呼び出しています。オブジェクトのインスタンスがなく、メソッドを呼び出す場合は、静的メソッドである必要があります。静的メソッドはいつでも呼び出すことができ、特定のオブジェクトにある必要はありません。loadData()DataReaderreader

于 2012-11-20T00:06:37.927 に答える