gpt4 book ai didi

java - 对象序列化查询

转载 作者:行者123 更新时间:2023-11-30 07:27:25 24 4
gpt4 key购买 nike

我目前正在学习 Java 中的对象序列化,据我所知,甚至可以序列化实现 Serializable 接口(interface)的对象,然后通过套接字将其传递给不同的程序。

  class Mammal implements Serializable
{
int legs = 4;

}

public class ObjectSerial
{



public static void main(String[] args)
{
try
{
FileOutputStream fo = new FileOutputStream("mammal.obj");
ObjectOutputStream oo = new ObjectOutputStream(fo);

Mammal m = new Mammal();
oo.writeObject(m);
oo.close();
}
catch(IOException e){}

//read object
try
{
FileInputStream fi = new FileInputStream("mammal.obj");
ObjectInputStream oo = new ObjectInputStream(fi);

Mammal m = (Mammal)oo.readObject();
System.out.println(m.legs);
}
catch(IOException e){}
catch(ClassNotFoundException cnf){}//this exception must also be caught
}
}

令我困惑的是,例如,当我想在服务器端检索类成员时,我将如何“到达”?序列化对象。

try
{
FileInputStream fi = new FileInputStream("mammal.obj");
ObjectInputStream oo = new ObjectInputStream(fi);

Mammal m = (Mammal)oo.readObject();
System.out.println(m.legs);
}
catch(IOException e){}
catch(ClassNotFoundException cnf){}//t

换句话说。在另一个程序中,编译器会告诉我找不到该符号。

希望这个问题听起来不是很无知。只是为了确认...我如何在不同的程序中访问 Serializedobject 的变量。

问候

最佳答案

当您在服务器上反序列化您的“mammal.obj”时,您需要在类路径中包含 Mammal.class。并且任何对象 Mammal 也依赖于类路径。这是唯一的方法,也是序列化的缺点。它以二进制方式耦合您的客户端和服务器。

关于java - 对象序列化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9736421/

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