我要投Object
至 List<IAnalysisData>
.
该对象是从数据库中读入的。但是,我收到一个烦人的警告,说类型转换未经检查。
private List<IAnalysisData> deserialize(byte[] bytes) throws IOException, ClassNotFoundException
{
List<IAnalysisData> analysisDataList = null;
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
ObjectInputStream oos = new ObjectInputStream(in);
Object o = oos.readObject();
analysisDataList = (List<IAnalysisData>) o; //warning here
return analysisDataList;
}
转换对象的正确方法是什么?
编辑:我忘了提到 IAnalysisData
是一个接口(interface)。该实现称为 AnalysisData
.
最佳答案
我知道解决此类问题的唯一方法是添加
@SuppressWarnings("unchecked")
即使您绝对“知道”它是安全的,也没有办法证明您正在做的事情真的是安全的。
看起来像
@SuppressWarnings("unchecked")
private List<IAnalysisData> deserialize(byte[] bytes) throws IOException, ClassNotFoundException
{
List<IAnalysisData> analysisDataList = null;
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
ObjectInputStream oos = new ObjectInputStream(in);
Object o = oos.readObject();
analysisDataList = (List<IAnalysisData>) o; //warning here
return analysisDataList;
}
之后您将不会在该方法中收到未经检查的警告。
关于java - 将对象转换到列表会导致未检查的转换警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31540556/