バイナリファイルから2つの異なるリストを読み取ろうとしています。1つのリストはFlightタイプで、もう1つはCustomerタイプです。instanceof演算子を使用しようとしましたが、パラメーター化された型リストに対してinstanceofチェックを実行できないため、コンパイラーにエラーが表示され ます。実行時にさらにジェネリック型の情報が消去されるため、代わりにフォームリストを使用してください。 すべてのリストが読み取られるまでアイテムをループを使用して読み取る必要があるため、このロジックを実装する方法がわかりません。私のコードは次のとおりです。
public static void readFromFile() throws Exception {
List<Flight> flightList;
List<Customer> customerList;
//Create new input stream object
objInStream = new ObjectInputStream(new FileInputStream(fileLocation));
//Check if file exists
if(!fileLocation.exists()) {
//create new file
fileLocation.createNewFile();
}
Object o;
while((o = objInStream.readObject()) != null) {
//Compiler shows error
if(o instanceof List<Flight>)
flightList = (List<Flight>) o;
else if(o instanceof List<Customer>)
customerList = o;
}
}