我有不同类型的可序列化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;
}
答案 0 :(得分:0)
这至少应该编译:
public static <C extends Serializable> ContainerState<C> inflateState(Class<C> cls, Serializable state) throws ClassCastException {
return (ContainerState<C>)state;
}