Java:反序列化通用可序列化的容器?

时间:2011-06-21 22:32:35

标签: java serialization

我有不同类型的可序列化ObjectState,用于存储重要应用程序对象的状态数据。我这样做,所以我可以坚持这些重要的对象arcoss应用程序instatances。用户有时需要将某些对象组合成容器,因此一些ObjectState被放入ObjectState的数组中并传递给ContainerState(只是可序列化的)包含一系列泛型类型序列化的类。

我的问题是,如何反序列化ContianerState并保持类型完整性?我以为我可以试试像:

public static ContainerState<V> inflateState(V v, Serializable state) throws ClassCastException {
    return (ContainerState<V>)state;
}

但这甚至都不会超过日食的预警系统。我也尝试了V.class相同的结果。我甚至可以实现这个目标吗?

编辑1:

我试过这个,似乎有效,但我不确定这是不是最好的方法。有什么想法吗?

public static <cls extends Serializable> ContainerState<cls> inflateState(Class<? extends Serializable> cls, Serializable state) throws ClassCastException {
    return (ContainerState<cls>)state;
}

1 个答案:

答案 0 :(得分:0)

这至少应该编译:

public static <C extends Serializable> ContainerState<C> inflateState(Class<C> cls, Serializable state) throws ClassCastException {
    return (ContainerState<C>)state;
}