java - 如何识别 3 个对象以从文件中读取数据(Java)
问题描述
我想从 3 个对象中读取所有数据,这些对象都位于同一个 Arraylist 中。例如,我有 3 个类,分别是 Vehicle、Taxi、car。出租车,汽车类是继承自超类车辆。称为车辆列表的数组列表包含出租车、汽车、车辆。当我将对象写入文件时,它们具有不同的属性。这是我的车辆文件
AAA232,23,TM,GG,222,123
ABC234,23,TA,ga,23,123,ATC
LMC232,23,TC,ga,23,123
事情是当我将这些从 Vehicle.txt 读回 Arraylist 时。计算机如何理解哪个属于汽车或出租车,如果汽车有 7 个属性,而出租车只有 6 个属性,我该如何解决。这是我的代码,用于读取文件:
static void readVehicleFile() {
try {
File f = new File("Vehicle.txt");
Scanner SCF = new Scanner(f);
while (SCF.hasNext()) {
String record = SCF.nextLine();
Scanner SCR = new Scanner(record);
SCR.useDelimiter(",");
String plateNum,model,make;
int capacity,year,ownerID;
plateNum = SCR.next();
capacity = SCR.nextInt();
make = SCR.next();
model = SCR.next();
year=SCR.nextInt();
ownerID=SCR.nextInt();
Vehicle vehicle = new Vehicle(plateNum,capacity,year,model,make,ownerID);
vehicleList.add(vehicle);
}
SCF.close();
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null,"There is a error when saving file","Motor Vehicle Registration System",JOptionPane.ERROR_MESSAGE);
}
}
如您所见,它们都是由车辆而不是汽车或出租车读取的,因为如果我使用汽车对象,那么车辆将无法运行,因为车辆只有 6 个属性。是否有任何解决方案。
解决方案
推荐阅读
- amazon-web-services - 无服务应用程序部署失败 - 启用细粒度访问控制或将限制性访问策略应用于您的域
- python - 如何创建一个充满空列表的新 numpy 数组?
- javascript - 错误:“动作”未从“历史”导出
- javascript - JS:对象的聚合数组
- c# - RandomAccessStream.CopyAndCloseAsync 需要互联网吗?
- java - 如何在 JAXB 类生成期间更改元素名称
- javascript - Vaadin 14.4.0 操作后退/前进历史按钮(可能是 onHashChange)
- c# - 如何在 ASPxGridView 中检索数据
- api-gateway - 如何删除 Envoy 响应标头?
- oracle-apex - Oracle Apex 19 - lov 未读取另一个 lov 选定值