这更像是一个软件工程问题。我有一个基类和扩展基类的类。我的目标是有一种更清洁的方式来反序列化,比如一个字符串。我目前的解决方案是获取这个序列化字符串,从预先确定的类型字段中提取“类型”,然后使用 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);
}
}
}