【发布时间】:2012-11-21 21:23:32
【问题描述】:
我有以下代码:
Widget[] widgetArray = widgetService.getAllWidgets();
List<Widget> widgets = Arrays.asList(widgetArray);
// Prune out any Widgets named "Melvin".
Iterator<Widget> iter = widgets.iterator();
while(iter.hasNext()) {
Widget w = iter.next();
if("Melvin".equals(w.getName()))
iter.remove();
}
当我运行此代码时,我得到一个运行时java.lang.UnsupportedOperationExceptionError,其中包含null 的模糊异常消息,该消息被抛出iter.remove() 行。好像有些JavaIterators不支持remove方法,会抛出这个异常。
我无法将 widgetService.getAllWidgets() 方法更改为返回 List<Widget> 并坚持使用 Widget[] 数组返回值。
所以我问:我可以做些什么来循环我的 widgets 数组并动态删除名为“Melvin”的数组?
【问题讨论】: