java ObjectInputStream问题
前面的已定义一个Student类,把该类的对象存入ObjectStream.txt下面疑问代码代码如下:ObjectInputStreamois=newObjectInp...
前面的已定义一个Student类,把该类的对象存入ObjectStream.txt
下面疑问代码代码如下:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("ObjectStream.txt"));
Student o =(Student)ois.readObject(); //效果与下面语句一样。
Object o = ois.readObject(); //实为多态 ois.readObject()是Student
//但是 Student o = (Student) ois.readObject(); 务必强转
System.out.println(o); //o 实际是o.toString (调用Student类的toString方法)
ois.close();
就是读取出来的ois.readObject() 我用instanceof Student 判断出来是ture。
但是 Student o = (Student) ois.readObject(); 务必要强转才行。
想知道固中的原因是什么? 展开
下面疑问代码代码如下:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("ObjectStream.txt"));
Student o =(Student)ois.readObject(); //效果与下面语句一样。
Object o = ois.readObject(); //实为多态 ois.readObject()是Student
//但是 Student o = (Student) ois.readObject(); 务必强转
System.out.println(o); //o 实际是o.toString (调用Student类的toString方法)
ois.close();
就是读取出来的ois.readObject() 我用instanceof Student 判断出来是ture。
但是 Student o = (Student) ois.readObject(); 务必要强转才行。
想知道固中的原因是什么? 展开
2个回答
展开全部
因为readObject读出来的是 Object类型.
本来就是需要你来强制转换的.
看下面的方法
public static Object test(Object obj){
return obj;
}
//虽然是返回自身,但是
String s = test("abc");
//这样也是不对的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询