Im пытается создать программу carpark, которая имитирует, когда автомобили добавляются на автостоянку.UnsupportedOperationException при добавлении класса в коллекцию
Моя идея - создать список автомобилей типа, который добавляет автомобиль в список фиксированных capactiy (15).
Все работало отлично, пока я вдруг не начал получать следующее исключение:
Исключение в потоке «основной» java.lang.UnsupportedOperationException
Im совершенно запутался, почему это происходит сейчас потому что я ничего не менял, и исключение, похоже, приходит и уходит.
Я использую netbeans, и перед этим у меня возникли проблемы с тем, что основной класс не распознается в исходном пакете.
Я могу перечислить для вас код ниже:
паркингов Class
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class CarPark
{
List<Car> spaces = Arrays.asList(new Car[15]); //Set max size of list to be 15
Scanner scanner = new Scanner(System.in);
public void initialise()
{
CarSize carSize = null;
CarValue carValue = null;
System.out.println("Please enter the registration Number");
String regNo = scanner.nextLine();
System.out.println("\nNow the size of the car");
System.out.println("0 - Small");
System.out.println("1 - Medium");
System.out.println("2 - Large");
int size = scanner.nextInt();
switch(size)
{
case 0: carSize = CarSize.Small; break;
case 1: carSize = CarSize.Medium; break;
case 2: carSize = CarSize.Large; break;
}
System.out.println("\nFinally the value of the car");
System.out.println("0 - Loq");
System.out.println("1 - Medium");
System.out.println("2 - High");
int value = scanner.nextInt();
switch(value)
{
case 0: carValue = CarValue.Low; break;
case 1: carValue = CarValue.Medium; break;
case 2: carValue = CarValue.High; break;
}
addCar(regNo, carSize, carValue);
showTotalCars();
}
//Adds the car to the list
public void addCar(String regNum, CarSize size, CarValue value )
{
Car car = new Car(regNum, size, value);
spaces.add(car);
}
public void showTotalCars()
{
System.out.println("Total Cars = " + spaces.size());
}
}
автомобилей класса
public class Car
{
String RegistrationNumber = "";
CarSize size = null;
CarValue value = null;
public Car(String regNo, CarSize sizeOfCar, CarValue valOfCar)
{
RegistrationNumber = regNo;
size = sizeOfCar;
value = valOfCar;
}
@Override
public String toString()
{
return "Registration Number = " + RegistrationNumber
+ "\nSize = " + size.name()
+ "\nValue = " + value.name();
}
}
CarSize (Enum класс)
public enum CarSize
{
Small(0, "For small cars"),
Medium(1, "For medium cars"),
Large(2, "For large cars");
private final int Id;
private final String description;
CarSize(int identifier, String descr)
{
this.Id = identifier;
this.description = descr;
}
public int getId()
{
return Id;
}
public String getDescription()
{
return description;
}
}
CarValue (Enum класс)
public enum CarValue
{
Low(0, "For low value cars"),
Medium(1, "For medium value cars"),
High(2, "For high value cars");
private final int Id;
private final String description;
CarValue(int identifier, String descr)
{
this.Id = identifier;
this.description = descr;
}
public int getId()
{
return Id;
}
public String getDescription()
{
return description;
}
}
Я прочитал при проведении исследований, что вопрос пакета, как упоминалось выше, может произойти из-за нехватки памяти, и мне интересно, если это связано с моей текущей проблемой?
Заранее спасибо
Есть ли способ ограничить мощность Список_массивов до 15 в этом случае? Требования должны включать только 15 автомобилей, которые будут добавлены в список. Спасибо –
@KyleT нет, нет способа. Вы должны сделать это вручную в методе, в котором вы добавите элементы в свой «Список». –
Очень хороший ответ, и вы просветили меня больше на эту тему! Спасибо. –