gpt4 book ai didi

java - Lotus Notes 的 Java API 中的方法返回 Vector 而不是 ArrayList

转载 作者:行者123 更新时间:2023-11-30 08:59:33 25 4
gpt4 key购买 nike

如果我需要检索一个字段的值,我将需要使用这个函数

public java.util.Vector getItemValue(String name) throws NotesException

好吧,与 Lotus Notes Java API 中的任何其他方法一样,此方法返回 Vector 对象。在这个answer解释说 Vector 已过时。但是这个answer在同一个问题上,我认为使用 Vector 可能是必要的。

Although Enumerations are faster, they don't check if the collection was modified during iteration, which can cause issues, and given that Vector might be chosen for its syncronization - with the attendant access from multiple threads, this makes it a particularly pernicious problem.

我们在使用Lotus Notes Java API时,如果将生成的Vector对象转换为ArrayList对象会不会有问题?

Vector<String> vector = (Vector<String>) doc.getItemValue("somefield");
ArrayList<String> list = new ArrayList<String>(vector);

或者,一般来说,不建议进行这种转换吗?

编辑:以防万一,我不想/不需要使用 Vector 对象,但是 Lotus Notes Java 中的方法API 总是返回那个。所以,我有两个选择:(1) 始终将 Vector 对象转换为 ArrayList 或任何其他更好的选择,或者 (2) 只使用 Vector 对象。

简而言之,我的疑问是:在这种情况下将 Vector 对象转换为 ArrayList 是否安全?

最佳答案

您可以将 Vector 转换为更现代的 Collection。但是您必须确保不使用 Java 7 功能或类。

据我所知,IBM Notes 仍在使用 IBM Java 6 VM。

而且泛型有点危险,因为我不确定 Vector 中 getItemValue() 返回的每个 Item 都是一个字符串。

更新

我更愿意使用 Vector,因为 API 就是这样工作的。

事实上,IBM Notes/Domino API 有点可怕。有一个wrapper for the API from openNTF .

关于java - Lotus Notes 的 Java API 中的方法返回 Vector 而不是 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27194112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com