0

「旅程」タイプのファイルから値をスキャンする必要があるプロジェクトに取り組んでいますが、これを行う方法がわかりません。これが私のコードです:

    switch (idChar) {

           case 'B':
              flightNumIn = scanFile.next();
              tripDataIn = scanFile.next();
              baseFareIn = scanFile.nextDouble();
              fareAdjustmentFactorIn = scanFile.nextDouble();
              foodBeveragesIn = scanFile.nextDouble();
              entertainmentIn = scanFile.nextDouble();

              Business bTicket1 = new Business(flightNumIn, tripDataIn, 
                 baseFareIn, fareAdjustmentFactorIn, foodBeveragesIn, 
                 entertainmentIn);

              break;

そして実際のエラー:

    AirTicketProcessor.java:43: error: incompatible types
              tripDataIn = scanFile.next();
                                        ^
    required: Itinerary
    found:    String
4

3 に答える 3

0

あなたがやろうとしていることは、オブジェクトのシリアル化と呼ばれます。ここから始める必要があります。これは、シリアライズ可能なクラスをセットアップする方法に関する優れたチュートリアルです。Itinerary基本的に、 Serializable を実装するというクラスを作成する必要があります。FileIO を使用して、そのタイプのファイルをインポートおよびエクスポートします。書き出し (および読み込み) に関するチュートリアルは、こちらにあります。コードが機能しなかった理由は、Scanner が String 型のオブジェクトをスキャンしようとしたためです。

于 2012-11-13T21:18:48.503 に答える
0

scanFile.next() は旅程ではなく文字列を返しています。System.out.println(scanFile.next()); を試してください。それが何であるかについての手がかりを得るために。

于 2012-11-13T21:03:02.737 に答える
0

Scanner.next()読み取りStringますが、「スキャンされた」タイプに一致するコンストラクターをItineraryクラスに追加できます。

class Itinerary {
   public Itinerary(String str, int intValue, ...) {
     ...
  }
}

次のように作成します。

tripDataIn = new Itinerary(scanFile.next(), scanFile.nextInt(), ...);
于 2012-11-13T21:05:32.340 に答える