SimpleXML フレームワークを使用しています。私は3つのクラスを持っています.BとCはAを拡張します:
クラス:
public class A {
}
public class B extends A {
}
public class C extends A {
}
クラス A のコンバーターを登録できます。
シリアライゼーション:
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
}
}
問題: AConverter はクラス A のみに使用されます (クラス B および C には使用されません)。
クラス A (つまり、B と C) のすべてのインスタンスに AConverter を登録するにはどうすればよいですか?
注: (Matcher と Transform) の組み合わせは、私のケースには適していないと思います。これは、将来 ... 内に多くの内部ブロックが必要になるためです。