【发布时间】:2012-11-21 02:12:03
【问题描述】:
我一直在寻找一种方法来“自动化”所有需要的转换,以使 List 操作可用于普通数组。问题是
public static Object[] arrayRemoveAll(Object[] oA, Object[] removeA) {
List<Object> l = new ArrayList<Object>(Arrays.asList(oA));
l.removeAll(Arrays.asList(removeA));
return l.toArray(new Object[l.size()]);
}
当我尝试将对象转换回其原始数组类型时,总是给我 ClassCastException(例如,如果我调用 (String[])arrayRemoveAll(strA, strA2))。
我明白为什么会发生这种情况,但是有什么巧妙的方法可以规避这种情况吗?我希望能够为一些标准的 List 操作使用通用函数。
非常感谢。
【问题讨论】:
-
避免这种情况的巧妙方法是首先使用列表而不是数组。