Тангенциальный: String.format () пород:
public String toString() {
return String.format("%s %s", getMake(), getReg());
}
private static void printAll() {
for (Car car: cars)
System.out.println(car); // invokes Car.toString()
}
Совершенно не ясно, что вы делаете. Ваша функция getAll () должна возвращать List
Если у вас есть
Car[] arrayOfCars
и вы хотите получить список, вы можете просто сделать это:
List<Car> listOfCars = Arrays.asList(arrayOfCars);
Массивы задокументированы Здесь .
Вы получаете ошибку, потому что ваша функция getAll в классе Car возвращает один объект Car, и вы хотите назначить его в массив.
Это действительно не ясно, и вы можете разместить больше кода. почему вы передаете один автомобиль в функцию? В чем смысл вызова getAll на автомобиле.
Вы пытаетесь сделать что-то подобное?
public List<Car> getAll() {
return new ArrayList<Car>(cars);
}
И затем называете это:
List<Car> cars = c1.getAll();
for (Car item : cars) {
System.out.println(item.getMake() + " " + item.getReg());
}
Ваш метод getAll ()
не получает все. Возвращает первый автомобиль.
Оператор return
завершает цикл.
Другой подход заключается в добавлении метода toString ()
к вашему автомобилю
] и просто позвольте методу toString ()
из ArrayList выполнить всю работу.
@Override
public String toString()
{
return "Car{" +
"make=" + make +
", registration='" + registration + '\'' +
'}';
}
Вы не получаете один автомобиль на строку в выводе, но это быстро и легко, если вы просто хотите посмотрим, что находится в массиве.
List<Car> cars = c1.getAll();
System.out.println(cars);
Вывод будет выглядеть примерно так:
[Car{make=FORD, registration='ABC 123'},
Car{make=TOYOTA, registration='ZYZ 999'}]
Привет, извините, код для второго должен быть:
private static void getAll (CarList c1) {
ArrayList <Car> cars = c1.getAll(); // error incompatible type
for(Car item : cars)
{
System.out.println(item.getMake()
+ " "
+ item.getReg()
);
}
}
У меня есть класс с именем CarList, который содержит arraylist и его метод, поэтому в классе тестера у меня есть в основном этот код для использования этого класса CarList:
CarList c1; c1 = new CarList ();
все остальное работает, например, добавление и удаление автомобилей и отображение отдельного автомобиля, мне просто нужен код для отображения всех автомобилей в массиве.