Java “谅解问题”;UserInfo user1=(UserInfo)ois.readObject()&引用;

Java “谅解问题”;UserInfo user1=(UserInfo)ois.readObject()&引用;,java,casting,Java,Casting,我正在学习java,并从sun.com学习以下示例 import java.io.*; import java.util.*; public class UserInfo implements Serializable { String name = null; public UserInfo(String name) { this.name = name; } public void printInfo() { System.out.println("The

我正在学习java,并从sun.com学习以下示例

import java.io.*;
import java.util.*;

public class UserInfo implements Serializable {
   String name = null;

   public UserInfo(String name) {
   this.name = name;
 }

 public void printInfo() {
    System.out.println("The name is: "+name);
 }
}




import java.io.*;
import java.util.Date;

public class ReadInfo {

public static void main(String argv[]) throws Exception {
    FileInputStream fis = new FileInputStream("name.out");
    ObjectInputStream ois = new ObjectInputStream(fis);

    UserInfo user1 = (UserInfo) ois.readObject();
    UserInfo user2 = (UserInfo) ois.readObject();

    user1.printInfo();
    user2.printInfo();
    ois.close();
    fis.close();
 }
 }

我对ReadInfo.java有疑问。具体来说,我不知道如何理解UserInfo user1=(UserInfo)ois.readObject()行的代码;特别是,括号中“UserInfo”的功能是什么。(UserInfo)和ols.readObject()之间的关系是什么。

正在读取对象,代码正在将其强制转换为UserInfo对象,因为代码作者知道“name.out”包含UserInfo类型的序列化对象

报告明确指出:

readObject方法用于读取 流中的对象。Java的安全 应使用铸造来获得 所需类型。在Java中,字符串和 数组是对象,被视为 序列化过程中的对象。什么时候 阅读他们需要被投到 预期类型


此外,您可能需要阅读。

正在读取对象,并且代码正在将其强制转换为UserInfo对象,因为代码作者知道“name.out”包含UserInfo类型的序列化对象

报告明确指出:

readObject方法用于读取 流中的对象。Java的安全 应使用铸造来获得 所需类型。在Java中,字符串和 数组是对象,被视为 序列化过程中的对象。什么时候 阅读他们需要被投到 预期类型

此外,您可能还需要仔细阅读

具体来说,我不知道该怎么做 理解UserInfo行的代码 user1=(UserInfo)ois.readObject(); 特别是,它的功能是什么 括号中的“UserInfo”字段

ObjectInputStream.readObject()
返回
Object
,而不是
UserInfo
,因此必须将其强制转换为
UserInfo

具体来说,我不知道该怎么做 理解UserInfo行的代码 user1=(UserInfo)ois.readObject(); 特别是,它的功能是什么 括号中的“UserInfo”字段

ObjectInputStream.readObject()
返回
Object
,而不是
UserInfo
,因此必须将其强制转换为
UserInfo