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

Scanner.next()读取 aString但您可以将与“扫描”类型匹配的构造函数添加到您的Itinerary类:

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

并像这样创建:

tripDataIn = new Itinerary(scanFile.next(), scanFile.nextInt(), ...);
于 2012-11-13T21:05:32.340 回答
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 回答