1

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) の組み合わせは、私のケースには適していないと思います。これは、将来 ... 内に多くの内部ブロックが必要になるためです。

4

1 に答える 1

0

やってみました

registry.bind(A.class, AConverter.class);
registry.bind(B.class, AConverter.class);
registry.bind(C.class, AConverter.class);
于 2013-05-11T12:59:21.713 に答える