类型安全哈希表

Los*_*kov 3 java serialization

我正在使用强制Hashtable转换将a 反序列化为Hashtable实例,并且收到以下警告:Type safety: Unchecked cast from Object to Hashtable<Date,String>

代码: list = ((Hashtable<Date,String>)oos.readObject());

有没有办法解决这个警告?

Gho*_*ica 7

简单的答案:不,没有。

您会看到,该方法的签名表明:它返回Object

公共最终对象readObject()

因此,您必须在此处投射。因此,除了抑制警告之外,没有其他方法。

而且也没有其他办法。注意:您可以将任何类型的Java对象写入此类流。因此,您也可以从中“拉”出任何对象。因此,Object是唯一有意义的返回类型。

当然,对于Java泛型,结果可能是某个T或进一步受限制的T。但是,那仍然只是编译时的情况,保证了运行时结果符合预期。