【发布时间】:2013-06-18 16:36:55
【问题描述】:
这更像是一个软件工程问题。 我有一个基类和扩展基类的类。我的目标是有一种更简洁的反序列化方式,比如字符串。我目前的解决方案是获取这个序列化的字符串,从预先确定的类型字段中提取“类型”,然后使用 switch 语句调用相应的子类的反序列化方法。有没有办法通过利用 Java 语言而不是 switch 语句来做到这一点?
public abstract class Base {
String type;
}
public class A extends Base{
public A(String serializedString){...}
}
public class B extends Base{
public B(String serializedString){...}
}
public class AuxMethods {
public static Base deserialize(String s){
String type = extractType(s); // gets the type from the serialized object string
Base deserialized = null;
switch(type){
case "A":
deserialized = new A(s);
break;
case "B":
deserialized = new B(s);
}
}
}
【问题讨论】:
-
请注意,Java 支持多种自动序列化工具,例如 Java 对象序列化和 JAX-B。这些可能会减少您的工作量。
-
我知道。我正在使用序列化工具,但出于示例目的,我进行了简化。
-
好的。您使用的工具可以确定最佳解决方案。可能想要识别它。
标签: java polymorphism