package repository;
import domain.Car;
import java.io.*;
import java.util.ArrayList;
public class CarRepositoryBinaryFile extends FileRepository<Integer, Car> {
public CarRepositoryBinaryFile(String fileName) {
super(fileName);
}
@Override
protected void readFromFile() {
CarRepository newRepo = new CarRepository();
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new FileInputStream(this.fileName));
while (true) {
Car car = (Car) in.readObject();
newRepo.add(car.getId(), car);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
this.repository = newRepo.repository;
}
@Override
protected void writeToFile() {
ArrayList<Car> cars = new ArrayList<Car>(repository.values());
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(new FileOutputStream(this.fileName));
out.writeObject(repository);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
I am getting this error and i am not sure how to fix it
Exception in thread "main" java.lang.ClassCastException: class java.util.HashMap cannot be cast to class domain.Car (java.util.HashMap is in module java.base of loader 'bootstrap'; domain.Car is in unnamed module of loader 'app')
at repository.CarRepositoryBinaryFile.readFromFile(CarRepositoryBinaryFile.java:21)
at repository.FileRepository.<init>(FileRepository.java:10)
at repository.CarRepositoryBinaryFile.<init>(CarRepositoryBinaryFile.java:11)
at Main.readPropertiesCreateRepo(Main.java:49)
at Main.main(Main.java:65)