簡體   English   中英

如何避免警告類型安全:未選中從Object到ArrayList的強制轉換<Facility>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM