2 回答
TA贡献1836条经验 获得超3个赞
很难判断您是否没有提供您得到的错误,也没有提供一个最小的、完整的和可验证的示例。
无论如何,错误可能是因为您试图删除不可变的元素List。
当你创建一个List与Arrays.asList你得到的是一个不可改变的列表,如果你试图调用该方法remove(10)一java.lang.UnsupportedOperationException会抛出异常。
因此,您可能需要在Procedure构造函数中进行一些更改以使这些列表可变。一种方法是List从不可变的创建一个新的。它看起来类似于:
Procedure(List<FileType> optionalFileTypes /* other arguments */) {
this.optionalFileTypes = new ArrayList(optionalFileTypes);
// other constructor code
}
TA贡献1862条经验 获得超6个赞
Arrays.asList()不支持像 add(),addAll(),remove(),removeAll() 这样的操作,因为它返回不可变列表。您需要将任何需要修改的列表包装在ArrayList<>(). 尝试如下:
public enum Procedure {
NONE("NONE", "procedure.none", false, null, Collections.<FileType> emptyList(), Collections.<FileType> emptyList()),
PROCEDUREF("PROCEDUREF", "procedure.procedureD", false, null, Arrays.asList(FileType.REQUEST), new ArrayList<>(Arrays.asList(FileType.TEST1, FileType.TEST2,FileType.TEST3,FileType.TEST4,FileType.TEST5, FileType.TEST6,FileType.TEST7, FileType.TEST8, FileType.TEST9,FileType.TEST10, FileType.TEST11)))}
添加回答
举报