Он хочет, чтобы вы объявили ArrayList из центрального расположения (например, основного потока), а затем передали его в качестве аргумента функциям, которые его используют.Таким образом, если вы возьмете методы и поместите их в разные классы, это не сломается, потому что они не зависят от этого класса.
Например, если мы возьмем ваш newRoom
класс:
public void newRoom(List<Room> roomList) {
System.out.println("Please enter a name for your room");
String name = scan.nextLine();
Room aRoom = new Room(name);
roomList.add(aRoom);
System.out.println("You have added the " + name + ".");
options();
}
РЕДАКТИРОВАТЬ: Самый простой способ добиться этого - переместить объявление rooms
в ваш метод run
.Теперь для каждого местоположения в коде, который сообщает о «неизвестных переменных комнатах», вы можете изменить функцию, чтобы принимать ArrayList в качестве параметра.