【问题标题】:Java Warnings for fields in Domino / XPagesDomino / XPages 中字段的 Java 警告
【发布时间】:2019-08-28 21:23:32
【问题描述】:

我的 xpages 中有很多这样的警告:

描述资源路径位置类型 类型安全:Vector 类型的表达式需要未经检查的转换才能符合 List CustomerDominoDAO.java /db.nsf/WebContent/WEB-INF/src/se/acme/customer/dao 第 198 行 Java 问题

mailList.setPhones(doc.getItemValue("phones"));

在哪里

private List<String> phones =new List<String>();

我是在使用错误的类型还是应该直接取消这些警告?

【问题讨论】:

  • 记录:您帖子中的以下代码行将无法编译,因为 java.util.List 是一个接口,而不是一个类。私有列表 电话=新列表();例如,您需要将 new List() 替换为 new ArrayList()。

标签: java xpages


【解决方案1】:

您通常可以隐藏这些警告。核心 Java API 从未针对 Java 5 泛型进行更新,因此从这些方法返回的所有 Vectors 都等同于 Vector&lt;Object&gt;,并且没有类型安全的方法来获取它。

也就是说,最安全要做的事情是实际循环通过返回的List 并执行类似String.valueOf 的操作,因为它们可能是DoubleDateTime 中的值那里。在实践中这通常不是真正的威胁,但我认为你可以在 Java 8 上这样做:doc.getItemValue("phones").stream().map(String::valueOf).collect(Collectors.toList())

此外,如果您使用 OpenNTF Domino API,则有一个 getItemValues(String name, Class&lt;T&gt; type) 将执行必要的转换和转换,并直接返回一个真正的 List&lt;String&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2012-05-26
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    相关资源
    最近更新 更多