【发布时间】:2013-04-27 16:46:31
【问题描述】:
我正在尝试设置一个不可修改的List。
在我的代码中,我有一个返回列表的方法。
这个列表不应该被修改,但我不想捕获 unmodifiableList 返回的异常。
private List<T> listeReferenceSelectAll = null;
List<T> oListeRet = new ArrayList<T>();
oListeRet = listeReferenceSelectAll;
return new ArrayList<T>(oListeRet);
这是一个现有代码,我必须对其进行转换以返回一个不可修改的列表,但如果调用了“add”方法,则不必捕获任何异常。
首先我创建了一个类,它实现了 List 来覆盖“add”方法来记录异常而不是捕获它。
但我不知道如何正确实例化它...
【问题讨论】:
-
很难理解您给出的代码 sn-p 因为它似乎部分在方法中,部分不在方法中。也不清楚您所说的“我不想捕获异常”是什么意思 - 哪个异常?你真的是说你想要一个默默地忽略任何修改它的尝试的列表吗?咳!
-
使用 collections 包,不要重新发明轮子。
-
当您执行 oListeRet = listeReferenceSelectAll 时,您将丢失对您创建的数组列表的引用。我怀疑这不是你想要的。
-
@LumpN:我还是觉得不对劲。如果您调用
add并且它没有失败,但它也没有将项目添加到列表中,这听起来像是灾难的秘诀。
标签: java list arraylist unmodifiable