gpt4 book ai didi

java - 反序列化时如何找到对象所属的正确子类?

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

这就是场景。

我有一个 java 代码用于将序列化对象写入 .ser 文件,另一个用于从 .ser 文件中读取对象。

执行序列化的代码还包含类定义,如下 -

abstract class Currency implements Serializable{
protected double value;
abstract double getValue();
abstract void print();
}

class Rupee extends Currency{
Rupee(double val){
value=val;
}
public double getValue(){
return value;
}
public void print(){
System.out.println("INR "+value);
}
}

class Dollar extends Currency{
Dollar(double val){
value=val;
}
public double getValue(){
return value;
}
public void print(){
System.out.println("USD "+value);
}
}

现在,我使用可以向下转换为卢比或美元的货币引用,并随机生成卢比和美元对象并将它们序列化到 .ser 文件中。

问题是,在另一个代码中反序列化时,我如何区分正在读取的对象是美元对象还是卢比对象,因为它可能是其中之一(随机生成)。 readObject() 方法仅返回一个 Object 类型,并且需要显式强制转换。要进行强制转换,我首先需要找出它是哪个类对象。帮帮我。

最佳答案

您可以使用运算符 instanceof 来检索给定对象的实例的类型。

示例:if(美元的货币实例){...}

关于java - 反序列化时如何找到对象所属的正确子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33934596/

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