Java でのシリアル化に Kryo ライブラリを使用しています。アップキャストを強制する方法がないという問題があります。状況の例を次に示します。
class A {}
class B extends A {}
public save() {
Kryo kryo = new Kryo();
kryo.setRegistrationRequired(true); //force registration
kryo.register(A.class); //register A with kryo
Output output = new Output( ... );
B bar = new B();
kryo.writeObject(output, (A) bar); //try to cast it up
}
はまだ のインスタンスであるため、これによりclass not registered
エラーが発生します。bar
B
のインスタンスに強制的bar
にキャストする方法はありますかA
、またはのようなことをする必要がありますnew A(bar)
か?