В FleetTUI.java У меня есть список флотов (каждый флот будет иметь собственный список грузовиков).Java: Доступ к ArrayList внутри ArrayList?
private static ArrayList<Fleet> fleetCollection;
В Fleet.java у меня есть список объектов грузовика.
ArrayList<Truck> fleetList;
, который инициализируется в его конструкторе.
public Fleet(String businessName){
this.businessName = businessName;
this.fleetList = new ArrayList<Truck>();
}
Поэтому каждый раз, когда я делаю новый флот, я также составляю список грузовиков вместе с ним.
В FleetTUI.java, у меня есть метод, который добавляет грузовик к флоту, сделанные до:
public static void addTruck(){
printFleets();
System.out.println("Please enter the fleet number where this truck will be added:");
inputText = scan.nextLine();
int inputFleetId = Integer.parseInt(inputText);
System.out.println("Please enter the truck's horn sound:");
inputText = scan.nextLine();
String inputHorn = inputText;
System.out.println("Please enter the truck's fuel capactity:");
inputText = scan.nextLine();
int inputFuelCapacity = Integer.parseInt(inputText);
System.out.println("Please enter the amount of gas remaining in the tank:");
double inputGasRemaining = Double.parseDouble(scan.nextLine());
**Fleet.fleetList**.add(inputFleetId, new Truck(inputHorn, inputFuelCapacity, inputGasRemaining));
System.out.println("--- A truck that goes " + inputHorn + " with " + inputGasRemaining + " gallon(s) in a " + inputFuelCapacity + " gallon tank has been added to " + **fleetCollection.getBusinessName()** + "'s fleet ---");
System.out.println("");
}
Я где жирным шрифтом я получаю сообщение об ошибке. Ошибки:
Может не сделать статическую ссылку на нестатическое поле Fleet.fleetList
Невозможно сделать статическую ссылку на не-статический метод getBusinessName() от типа флота
Я не знаю никакого другого способа доступа к списку машин внутри парка, я создал с помощью метода:
public static void createFleet(){
System.out.println("");
System.out.println("Please enter the name of the fleet.");
inputText = scan.nextLine();
fleetCollection.add(new Fleet(inputText));
printFleets();
System.out.println("");
System.out.println("--- Fleet: " + inputText + " added ---");
System.out.println("");
}
Итак, я думаю, действительно, мой вопрос: Как правильно добавить новый грузовик в список Грузовиков, который находится внутри Флота, который я только что сделал, используя createFleet(), который размещен в собственной коллекции флотов?
Обновление: Спасибо :) вы, ребята, действительно помогли мне! еще раз!
почему ваш метод 'addTruck()' static? –
Это выглядит как плохой дизайн для меня. статические следует использовать с осторожностью и, когда это необходимо. Я предполагаю, что вам следует избавиться от всех ваших статических ключевых слов и правильно создать объекты. Если tomorrown попросит вас обработать несколько флотов, ваш весь код должен быть реорганизован. –
Чтобы избежать путаницы, переименуйте свой 'fleetList' в' truckList', вот что он представляет. –