当前位置: 首页 > 知识库问答 >
问题:

列出异常java.lang.UnsupportedOperationException[重复]

阎佑运
2023-03-14

我一直得到java.lang.UnsupportedOperationException当尝试添加一个新项目到列表中,例如Items.add(p);你能帮助我理解为什么我得到这个例外吗?

import java.util.Arrays;
import java.util.List;

public class Item {
    int id; int price;

    public Item(int id, int price) {
        this.id = id;
        this.price = price;
    }

    @Override
    public String toString() {
        return id + ":" + price;
    }

    public static void main(String[] args) {

        List<Item> Items = Arrays.asList(new Item(1, 30), new Item(2, 50), new Item(2, 40)  );

                Item p = Items.stream().reduce(new Item(4,0),(p1, p2) -> {
            p1.price += p2.price;
            return new Item(p1.id, p1.price);
            });

        System.out.println(p);
        Items.add(p);

        Items.stream().parallel().reduce((p1,p2) -> p1.price > p2.price?p1:p2).ifPresent(System.out::println);
    }

}

共有1个答案

计胤
2023-03-14

< code>Arrays.asList方法返回由提供的数组支持的固定大小的列表。您不能在其中添加或删除元素。

它返回一个特殊类的对象(不是ArrayListLinkedList),该类实现了List接口。所有大小变化的方法都被实现为抛出java.lang.UnsupportedOperationException

如果您想要一个能够添加更多元素的List,请创建一个ArrayList并将您的元素添加到其中。

 类似资料:
  • 假设我想在收到特定异常时恢复某个值,否则返回失败的未来。我希望是这样的: 如果函数会抛出检查过的异常,我想在链式方法中处理它。我尝试过和,但都无法编译。是否为这种情况提供了任何解决方案?我知道接口是方法的参数,它不会抛出任何异常——在这种情况下,我只想返回已经失败的未来。我想找到使用Java8的解决方案。

  • 这是我连接HTTP的代码。 这就是android。操作系统。NetworkOnMainThreadException 请帮忙。

  • 每次在我的android工作室,我都遇到以下异常,请帮助我 错误:任务执行失败:app:transformClassesWithDexForDebug。 com.android.build.api.transform.TransformException: com.android.ide.common.process.processexception: java.util.concurrent.E

  • 你怎么捕获一个异常,之后在另外一个线程上重新抛出?使用在标准文档18.8.5中描述的异常传递中的方法吧,那将显示标准库的魔力。 exception_ptr current_exception(); 返回一个exception_ptr 变量,它将指向现在正在处理的异常(15.3)或者现在正在处理的异常的副本(拷贝),或者有的时候在当前没有遇到异常的时候,返回值为一个空的exception_ptr变量

  • 首先,下面的代码片段是Google云项目应用程序的一部分,在我的本地客户机Raspberry Pi 1上运行。为了能够从连接到Pi的传感器向云发送数据,需要授权。所有需要的客户端机密都存储在src/main/resources中的“client_secrets.json”中。 项目层次结构 当试图使用客户端机密来授权时,下面的代码抛出一个NullPointerException。它是类“CmdLi

  • 问题内容: 我有一个关于Java中重新引发异常的非常简单的问题。 这是代码片段: 为什么我们需要在第一个版本中重新抛出,而第二个版本看起来更优雅?可能有什么好处,并且优先选择哪个版本? 问题答案: 你是对的。第二版更好。而且,第一个版本没有任何意义。除了异常的堆栈跟踪为“错误”之外,它的功能相同。 有“重新抛出”异常的原因如下: 如果您之前有事要做。 如果捕获一种类型的异常并抛出另一种类型的异常: