我正在使用 Kryo 库在 Java 中进行序列化。我有一个问题,我无法强制转换。这是一个示例情况:
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)
?
最佳答案
向上转型不会改变对象本身,只会改变指向它的引用的类型。您将必须注册 B.class.
关于Java:如何强制向上转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291189/