City
на самом деле не предоставляет статический метод getConnections()
, поскольку это не имеет смысла. Соединения зависят от фактического City
экземпляра, и если у вас есть доступ к нему, вы можете вызвать getConnections()
для него даже из статического метода.
Это комментарий к списку массивов, который клонирован в getConnections()
:
// Какие города связаны с этим
Обратите внимание, что это означает, что вы просто не можете получить соединения, не указав этот город (тот, для которого вы получаете соединения), и, следовательно, просто не можете вызвать этот метод только для класса City
.
Комментарий к самому методу:
Цель: получить список городов, которые вы можете найти по этому .
Предполагая, что ваш метод determineRoute(...)
может быть статическим, он может выглядеть следующим образом:
public static boolean determineRoute(City from, City to, ArrayList<City> flightRoute)
{
ArrayList<City> connections = new ArrayList<City>();
connections = to.getConnections(); //or from.getConnections(); what ever makes sense
//connections is not used, so I assume you want to put them into flightRoute
flightRoute.addAll(connections);
return true;
}
Ваша determineRoute(...)
логика кажется довольно странной. Я предполагаю, что вы хотите вычислить маршрут между from
и to
городом, который вы сейчас не делаете. Однако исправить это - упражнение для вас.
Затем вы можете вызвать этот метод в вашем основном методе (который имеет , чтобы быть статическим), как это:
public static void main(String... args) {
City berlin = new City("Berlin");
City beijing = new City("Beijing");
//fill the connections here
ArrayList<City> route = new ArrayList<City>();
boolean success = determineRoute(berlin, beijing, route);
}