我有以下代码:
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()
返回 a 的方法,并且被数组返回值List<Widget>
卡住了。Widget[]
所以我问:我能做些什么来循环遍历我的widgets
数组并动态删除那些名为“ Melvin ”的数组?