我想从我从 FileChooser 获得的不可修改列表中删除元素。但是在尝试这样做时,它会抛出一个 UnsupportedOperationException。任何人都可以建议我从列表中删除/删除内容吗?
小智 5
您可以创建新列表
List<*T*> list = new ArrayList<>(unmodiableList);
Run Code Online (Sandbox Code Playgroud)
我猜您调用了FileChooser.showOpenMultipleDialog(...)获取此列表的方法。
方法描述说:
返回的列表是不可修改的,并且
UnsupportedOperationException每次修改尝试都会抛出异常。
要解决此问题,请不要从List接口调用任何修改列表内容的方法(例如List.remove(...))。
您可以做的是将列表的内容复制到集合中,例如类提供的集合FXCollections。一些有用的方法是:
由于您无法修改列表,因此您可以获取列表的副本并根据需要进行修改,或者您可以获取Stream.filter原始集合并仅复制您需要的内容。