java.lang.UnsupportedOperationException: null

问题描述:

在Java中,当你遇到 java.lang.UnsupportedOperationException 这个异常时,通常意味着你尝试在一个不支持该操作的集合上执行了一个操作。在这个具体的例子中,问题很可能出在 toList() 方法的使用上,以及后续对列表的修改。

        List<Long> ids=dtos.stream().filter(s->s.getId()!=null).map(BaseModel::getId).toList();
        List<Long> deleteIds=exists.stream().map(BaseModel::getId).toList();
        //这边报java.lang.UnsupportedOperationException: null  
        deleteIds.removeAll(ids);

修改为:

            List<Long> ids=dtos.stream().filter(s->s.getId()!=null).map(BaseModel::getId).toList();
            //.collect(Collectors.toList()才是可删除对象
            List<Long> deleteIds=exists.stream().map(BaseModel::getId).collect(Collectors.toList());
            deleteIds.removeAll(ids);

原因:

使用的是Java 12或更高版本,并且使用了 Stream.toList(),你应该改用 Collectors.toList() 来确保得到一个可修改的 ArrayList

posted @   轻寒  阅读(145)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示