1

这是我的代码:

public class FlightMap implements FlightMapInterface {

LinkedList<City> cityList = new LinkedList<City>();
LinkedList<City> nextCity = new LinkedList<City>();

/**
 * Creates an empty FlightMap
 */
public FlightMap() {        
}


public void loadFlightMap(String cityFileName, String flightFileName)
        throws FileNotFoundException {

    File cityList = new File(cityFileName);
    File flightsTo = new File (flightFileName);

    Scanner theCityFile = null;
    Scanner theFlightFile = null;
    Scanner theRequestFile = null;

    ArrayList<String> cityStringList = new ArrayList<String>();
    int counter = 0;

    try {
        theCityFile = new Scanner (cityList);
        theFlightFile = new Scanner (flightsTo);
    }
    catch (FileNotFoundException e) {
        System.out.println("No such file exists.");
    }

    while (theFlightFile.hasNextLine()) {
        cityStringList.add((theFlightFile.nextLine()).replaceAll("\t", ""));
    }

    while (theCityFile.hasNextLine()) {
        LinkedList<City> tempList = new LinkedList<City>();
        String tempCity = theCityFile.nextLine();
        nextCity.add(tempList); // ERROR
        nextCity.get(counter).add(new City(tempCity)); // ERROR

        for (int x = 0; x < cityStringList.size(); x++) {
            if (cityStringList.get(x).charAt(0) == tempCity.charAt(0)) {
                insertAdjacent(nextCity.get(counter).getFirst(), // ERROR
                        new City(cityStringList.get(x)).charAt(1) + "");  // ERROR
            }
        }
        cityList.add(new City(tempCity)); // ERROR
        counter++;
    }
}

对于我的错误:

  • 线程“main”java.lang.Error 中的异常:未解决的编译问题:
  • LinkedList 类型中的方法 add(City) 不适用于参数 (LinkedList)
  • 未定义 City 类型的 add(City) 方法
  • 未定义 City 类型的 getFirst() 方法
  • charAt(int) 方法未为 City 类型定义
4

5 回答 5

1

您不能add()列出您的LinkedList<City>- 它的元素必须是 type City,而不是 type List<City>。你可以addAll改用。然后,您尝试adda Cityto your City,而不是 to your List- 显然City没有Add方法。getFirst与 the和 the -类似,charAt您一直将City对象视为Lists 或Strings。

于 2013-04-22T20:39:20.340 回答
1

正是错误所说的。

LinkedList<City> tempList = new LinkedList<City>();
String tempCity = theCityFile.nextLine();
nextCity.add(tempList);

应该是

String tempCity = theCityFile.nextLine();
nextCity.add(tempCity);

您试图将 a 添加LinkedList到另一个LinkedList. 您只能将类型City的“节点”添加到LinkedList您声明的。

于 2013-04-22T20:37:45.543 回答
0

首先 nextCity 的类型是 LinkedList<City> 所以你不能添加一个 LinkedList 到它:

nextCity.add(tempList);

改用:

nextCity.addAll(tempList);

同样的问题是:

nextCity.get(counter).add(new City(tempCity));

您正在获取城市并再次向其中添加城市。

于 2013-04-22T20:39:41.650 回答
0

你正在尝试做一些没有意义的事情,所以你会得到这些错误。

LinkedList 类型中的方法 add(City) 不适用于参数 (LinkedList)

您正在尝试将城市列表添加到城市列表。

未定义 City 类型的 add(City) 方法

您正在尝试将城市添加到城市(而不是城市列表,并且您还没有定义这样的方法。

未定义 City 类型的 getFirst() 方法 未定义 City 类型的 charAt(int) 方法

你还没有定义这些方法,所以你不能调用它们。

于 2013-04-22T20:38:00.167 回答
0

在此代码中:

    LinkedList<City> tempList = new LinkedList<City>();
    String tempCity = theCityFile.nextLine();
    nextCity.add(tempList);

您正在尝试将错误状态 添加LinkedList<City>到您的列表中。nextCity

于 2013-04-22T20:38:28.303 回答