【问题标题】:unchecked cast 'java.lang.object' to 'java.util.list ' [duplicate]未经检查将“java.lang.object”转换为“java.util.list”[重复]
【发布时间】:2016-09-06 11:44:48
【问题描述】:
@DataProvider
public Iterator<Object[]> validLogin() throws IOException {
    BufferedReader reader = new BufferedReader(new FileReader(new File("src/test/java/resources/UserData/login.xml")));
    String xml = "";
    String line = reader.readLine();
    while (line != null) {
        xml += line;
        line = reader.readLine();
    }
    XStream xStream = new XStream();
    xStream.processAnnotations(User.class);
    List<User> users = (List<User>) xStream.fromXML(xml);
    return users.stream().map((g) -> new Object[]{g}).collect(Collectors.toList()).iterator();
}

我看到了这个警告

unchecked cast 'java.lang.object' to 'java.util.list '   

List<User> users = (List<User>) xStream.fromXML(xml) ;

我怎样才能避免它们?

【问题讨论】:

    标签: java casting warnings


    【解决方案1】:

    在您的示例中,您似乎不需要将其设为List&lt;User&gt;,因此您可以这样做

    List<?> users = (List<?>) xStream.fromXML(xml);
    

    如果您确实需要输入它,则无法避免该警告。如果您确信类型正确,请使用@SuppressWarnings("unchecked")。如果有疑问,请编写一些代码来断言所有元素确实属于正确的类型(我希望 JDK 有一个帮助方法)。

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-21
      • 2023-03-12
      • 2011-02-22
      相关资源
      最近更新 更多