2013-05-10 49 views
1

我正在使用SimpleXML框架。我有三个类,B和C扩展答:简单的XML框架 - 用单个转换器转换继承类

public class A { 
} 
public class B extends A { 
} 
public class C extends A { 
} 

我可以注册类的转换器:

Seriailization

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 
} 
} 

问题:A变换器被用于类A仅(不用于类B和C)。

如何才能将AC反相器注册到A类的所有实例(即B和C)?

注意:我认为(Matcher & Transform)的组合对我的情况并不好,因为我将来需要很多内部块。

回答

0

你试过

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

是的,这是可行的,但问题是会有数百一个子类(也是在第三方库),并注册每个将是相当棘手。 – 2013-05-13 06:17:33