gpt4 book ai didi

java - 添加列表抛出 java.lang.UnsupportedOperationException

转载 作者:行者123 更新时间:2023-12-02 13:17:13 26 4
gpt4 key购买 nike

我有 4 个具有相同 get...() 方法的函数,我只更改了名称或标识符,但第四个函数得到了不同的结果,即在向列表添加新项目时,它会抛出 java.lang.Error 异常。 lang.UnsupportedOperationException。我向你保证,我已经仔细检查了所有 4 个函数及其关系,但不知道为什么第四个函数会这样。

public List<PropertyAttribute> getAttributes() {
if (selectedCode == null)
return null;

Criteria criteria = this.propertyAttributeDAO.createCriteria();
FilterUtils.byField(criteria, "propertyCode", this.selectedCode, true);
List<PropertyAttribute> list = criteria.list();

if (isNewAttribute()) {
list.add(0, this.curAttribute); //this line that throws exception
}

return list;
}

更新堆栈跟踪:

Caused by: java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at bos.web.pages.instrument.ViewProperty.getAttributes(ViewProperty.java:654)
at $InternalPropertyConduit_237587e282284.get(Unknown Source)
at org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:59)

最佳答案

除非有明确记录,否则不要认为修改从其他方法收到的列表是安全的。即使它不抛出异常,它也可能会改变关键状态(如果没有安全实现)。将其复制到新列表中,您可以做任何您喜欢的事情:

List<PropertyAttribute> list = new ArrayList<>(criteria.list());

关于java - 添加列表抛出 java.lang.UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43733291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com