以下代码段会导致 Eclipse 中倒数第二行的警告“类型安全:未经检查的从对象到 ArrayList 的转换”。只是想知道我能做些什么来改进它。该代码用于从 xml 文件中读取对象。
private List<Facility> getFacilityCodes() {
InputStream in = this.getClass().getResourceAsStream("./resources/facility.xml");
String xml = convertStreamToString(in);
XStream xstream = new XStream(new StaxDriver());
xstream.alias("Facility", Facility.class);
xstream.alias("Facilities", List.class);
ArrayList<Facility> facilities = (ArrayList<Facility>) xstream.fromXML(xml);
return facilities;
}
最佳答案
问题是只要返回的对象是一个ArrayList
就会转换成功,但是因为删除不能保证每个元素都是一个Facility
.如果您愿意,您可以自己做。
ArrayList<Facility> facilities =
((ArrayList<?>) xstream.fromXML(xml)).stream()
.filter(Facility.class::isInstance)
.map(Facility.class::cast)
.collect(Collectors.toCollection(ArrayList::new));
关于java - 如何避免警告类型安全 : Unchecked cast from Object to ArrayList<Facility>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48316543/