AbstractList.add()上不支持的操作

时间:2014-06-12 12:19:41

标签: java list

我有一个方法

foo(list);

得到的是

List<SomeEntit>

作为输入。

我的方法foo看起来有点如下:

public void foo(List<SomeEntity someEntities) {
    someEntities.add(anotherEntity);
}

然后我在“at java.util.AbstractList.add(AbstractList.java:148)”中得到“java.lang.UnsupportedOperationException:null”引起的“javax.ejb.EJBException:java.lang.UnsupportedOperationException” / p>

你能告诉我为什么会这样吗?我希望我的代码示例不是太小。

2 个答案:

答案 0 :(得分:1)

有些列表无法修改。然后“不支持”添加元素的操作。

Java集合框架对于不可修改的列表或其他不可修改的集合没有不同的类型。你真的不知道是否允许添加一些东西。 您所能做的就是指定传递的列表必须是可修改的。

答案 1 :(得分:0)

似乎您作为输入获得的List的实际类型不会覆盖add方法。

尝试将该列表转换为类似ArrayList

的列表实现
 List<SomeEntity> newList = new ArrayList<>(list);
 foo(newList);