gpt4 book ai didi

java - 关于理解 "UserInfo user1 = (UserInfo) ois.readObject();"的问题

转载 作者:行者123 更新时间:2023-11-29 03:56:42 27 4
gpt4 key购买 nike

我正在学习 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 类型的序列化对象。

API说得很清楚:

The method readObject is used to read an object from the stream. Java's safe casting should be used to get the desired type. In Java, strings and arrays are objects and are treated as objects during serialization. When read they need to be cast to the expected type.

此外,您可能还想阅读 Java tutorial's section re: Casting Objects .

关于java - 关于理解 "UserInfo user1 = (UserInfo) ois.readObject();"的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6019477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com