![](/img/trans.png)
[英]Type safety: Unchecked cast from Object to ArrayList<MyVariable>
[英]How to avoid warning Type safety: Unchecked cast from Object to ArrayList<Facility>
以下代碼段在Eclipse的倒數第二行中顯示警告“類型安全:未經檢查的從對象到數組列表的轉換”。 只是想知道我能做些什么來改善它。 該代碼用於從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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.