【发布时间】:2014-11-28 18:19:09
【问题描述】:
如果我需要检索一个字段的值,我将需要使用这个函数
public java.util.Vector getItemValue(String name) throws NotesException
这个方法与 Lotus Notes Java API 中的任何其他方法一样返回 Vector 对象。在此answer 中解释了 Vector 已过时。但是这个answer 在同一个问题上让我认为使用Vector 可能是必要的。
虽然枚举更快,但它们不检查集合是否 在迭代期间进行了修改,这可能会导致问题,并且鉴于 可能会选择 Vector 进行同步 - 与服务员同步 从多个线程访问,这使得它特别有害 问题。
当我们使用 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 的 Javadoc 中哪里说它已被弃用?它可能被一些人认为已过时,但不推荐使用它。请使用正确的术语。
-
@Lolo 已修复。感谢您的观察。
标签: java vector arraylist lotus-notes