Java 简单XML框架-使用单个转换器转换继承的类

Java 简单XML框架-使用单个转换器转换继承的类,java,xml-serialization,simple-framework,Java,Xml Serialization,Simple Framework,我正在使用SimpleXML框架。我有三个类,B和C扩展了A: 课程: 我可以为a类注册转换器: 系列化: 转换器: 公共类AConverter实现转换器{ @凌驾 公共读取(InputNode n)引发异常{ //TODO自动生成的方法存根 返回null; } @凌驾 public void write(OutputNode n,A p)引发异常{ //TODO自动生成的方法存根 } } 问题:A转换器仅用于A类(不用于B类和C类) 如何将A转换器注册到A类(即B和C)的所有实例? 注意:我

我正在使用SimpleXML框架。我有三个类,B和C扩展了A:

课程:

我可以为a类注册转换器:

系列化:

转换器:

公共类AConverter实现转换器{
@凌驾
公共读取(InputNode n)引发异常{
//TODO自动生成的方法存根
返回null;
}
@凌驾
public void write(OutputNode n,A p)引发异常{
//TODO自动生成的方法存根
}
}
问题:A转换器仅用于A类(不用于B类和C类)

如何将A转换器注册到A类(即B和C)的所有实例?

注意:我认为(匹配器和变换)的组合不适合我的情况,因为我需要在。。。将来。

你试过了吗

registry.bind(A.class, AConverter.class);
registry.bind(B.class, AConverter.class);
registry.bind(C.class, AConverter.class);

是的,它可以工作,但问题是将有数百个子类(也在第三方库中),并且注册每个子类将非常棘手。
Registry registry = new Registry();
registry.bind(A.class, AConverter.class);
Strategy strategy = new RegistryStrategy(registry);
Serializer serializer = new Persister(strategy);
public class AConverter implements Converter<A> {
@Override
public A read(InputNode n) throws Exception {
    // TODO Auto-generated method stub
    return null;
}
@Override
public void write(OutputNode n, A p) throws Exception {
    // TODO Auto-generated method stub
}
}
registry.bind(A.class, AConverter.class);
registry.bind(B.class, AConverter.class);
registry.bind(C.class, AConverter.class);