FileInputStream fileInputStream = new FileInputStream("D:\\HeimaIT\\OtherData\\lycode\\javaee\\mychar-stream\\src\\com\\itheima\\d6_object_stream\\a.txt"); ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); Object o = objectInputStream.readObject(); if (o instanceof ArrayList<Student> arrayList){ } ArrayList<Student> o1 = (ArrayList<Student>) o; 我该怎么写哪个if判断条件
时间: 2023-07-06 17:41:25 浏览: 470
详解FileInputStream读取文件数据的两种方式
你在 if 语句中使用了 Java 14 引入的 instanceof 模式匹配语法,而在 Java 11 中是不支持的,所以编译器报错了。
如果你想判断读取的对象是否是 ArrayList<Student> 类型,可以使用以下代码:
```
Object o = objectInputStream.readObject();
if (o instanceof ArrayList && ((ArrayList) o).get(0) instanceof Student) {
ArrayList<Student> arrayList = (ArrayList<Student>) o;
// 进行 ArrayList<Student> 类型的操作
} else {
// o 不是 ArrayList<Student> 类型,进行其他操作
}
```
这里使用了 instanceof 运算符来判断 o 是否是 ArrayList 类型,并且判断 ArrayList 中的第一个元素是否是 Student 类型。如果都满足,就可以将 o 强制转换为 ArrayList<Student> 类型,并进行相应的操作。
阅读全文