Lombok Builder 注释引发 UnsupportedOperationException

2024-01-31

我在我的项目中使用 Lombok。 我的模型看起来像:

@Builder
@Data @AllArgsConstructor
public class ScreenDefinitionDTO {
    @Singular
    private List<ScreenDeclaration> screens;
}

我想做下一步操作:

String screenName = ctx.screenName().getText();
ScreenDeclaration declaration = ParsingUtils
                .buildScreenDeclaration(StringUtils.trim(screenName));

创建实例的位置:

public static ScreenDefinitionDTO buildEmptyScreenDTO() {
    return ScreenDefinitionDTO.builder()
            .screens(new ArrayList<>())
            .build();
}

最后,我得到:

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.add(AbstractList.java:148)
    at java.util.AbstractList.add(AbstractList.java:108)

当我更改创建没有 Lombok 构建器模式的实例时,一切都很好:

public static ScreenDefinitionDTO buildEmptyScreenDTO() {
    return new ScreenDefinitionDTO(new ArrayList<>());
}

我不明白 Lombok 的构建器模式有什么问题?


Due to GitHub问题 https://github.com/rzwitserloot/lombok/issues/916

Lombok @Builder主要用于不可变(并使用 Collections.unmodifyingList 或 Guava 的 ImmutableList

这就是为什么你有UnsupportedOperationException

为了获得更大的确定性,请在有例外的地方重现完整的代码模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lombok Builder 注释引发 UnsupportedOperationException 的相关文章

随机推荐

  • 如何捕获当前视图屏幕截图并在代码中重用? (iPhone SDK)

    当用户旋转设备时 我试图从一个 UIView 转换到另一个 UIView 这本身并不困难 但是 由于我在旋转后显示完全不同的内容 因此 UIKit 提供的默认动画 旋转当前显示的视图 在概念上是不合适的 简单地禁用动画并突然交换视图是可以忍
  • ASP.NET Core 在单例服务上调用异步初始化

    我有一个服务 可以通过名为的方法从文件中异步读取一些内容InitAsync public class MyService IService private readonly IDependency injectedDependency pu
  • 使用 python 通过迭代列表创建 XML 文件

    我正在尝试获取一个如下所示的 xml 文件 以便我可以将其导入到 Moodle 成绩册中
  • 如何确定递归代码的Big-O?

    我有以下代码 这是这个问题的答案 https leetcode com problems add digits https leetcode com problems add digits class Solution public int
  • 同一图中连续的 matplotlib 动画

    我有一个算法 它由两个不同的部分组成 我想依次可视化这两个部分 同时可能在动画 2 开始时在屏幕上保留动画 1 的最终状态 我可以通过调用分别可视化这两个部分animation FuncAnimation and plt show 由于这两
  • Heroku 资产文件始终为空

    首先 我做了很多谷歌搜索 甚至让 Heroku 上的东西正常工作 但似乎无论我是让 Heroku 在 slug 编译期间预编译我的资产 还是我自己预编译它们并提交它们 无论哪种方式 我的 Rails 4 应用程序的 application
  • 解码和理解汇编代码

    所以有一点背景 我是 c 和汇编代码的初学者 我们有一个 炸弹 分配 用 c 编写 它调用需要某些密码的方法 但代码不可见 我需要通过查看汇编代码来确定正确的密码 该代码表明此方法的密码是 6 个数字 该密码作为 输入 传递到方法第 2 阶
  • Google 云端硬盘文件 ID 是全球唯一的吗?

    Google 云端硬盘文件 ID 在全球范围内是唯一的吗 UUID 是否有可能使用生成NSUUID类将与 Google 驱动器文件 ID 相同吗 仅供参考 这不是重复的 Google 文档 驱动器资源 ID 是否全局唯一 https sta
  • 如何从转义闭包中更改 inout 参数?

    我试图从转义闭包中修改函数的参数 如下所示 var completion gt Void func addCompletion closure escaping gt Void completion append closure func
  • jQuery 文件上传显示剩余时间?

    嗨我正在使用jQuery 文件上传 https github com blueimp jQuery File Upload wiki 它工作正常 我向用户显示一个进度条 显示上传进度 代码如下 fileupload fileupload p
  • 让 CMake 使用 gccfilter

    GCC过滤器 http www mixtion org gccfilter 是一个简洁的 Perl 脚本 允许对 GCC 的输出进行着色 从而使调试变得更加有趣 更重要的是 速度更快 您可以通过调用 GCCFilter 与 CMake 生成
  • OpenSSL::SSL::SSLError 仅限 Ubuntu 12.04

    我正在使用 Evernote Ruby API 开发 Web 应用程序 使用 Rails 和 oauth 但是在 Ubuntu 12 04 中运行该应用程序时 我收到错误 SSL connect SYSCALL returned 5 err
  • 使用 applescript 我想将文件夹中的每个文件移动到根文件夹

    我一直在尝试制作一个脚本将文件夹中的每个文件移动到根文件夹以包含每个子文件夹 我不想创建新文件夹 只需将其移动到根文件夹即可 我希望能够选择文件夹 然后仅在该特定文件夹上完成操作 原因是为了组织 我的确切情况是我有超过 TB 的电影 并且文
  • 可以在创建时将字典传递给 django 模型吗?

    是否可以用 a 做类似的事情list dictionary或者是其他东西 data dict title awesome title body great body of text Model objects create data dic
  • jQuery 处理表单

    这是一个非常简单的问题 我希望 但由于只是学习 掌握 jQuery 我提前道歉 如果我有一个表格 例如
  • google docs share 上使用了哪些技术

    我需要理解并知道我该如何做某事 在我的项目中 我需要创建类似于谷歌文档上的技术的东西 当我与其他人共享文档并且他和我同时编辑时 我会看到他的更改 我不知道这是否称为反向ajax或其他类型的技术 有人可以向我解释一下这是一种什么样的发展吗 E
  • Google Play 商店:您需要修复高分辨率图标。这不是有效的图像

    这是我尝试在 Play 商店中为我的应用程序提供图像时收到的错误消息 这是图像 它是在 GIMP 中创建的 请帮忙 这使我无法启动我的应用程序 如 Google Play 商店开发者控制台所述 图标图像应为 512 512 32 bitPN
  • Chrome 不缓存预检

    我正在实现一个应该支持跨域请求的 REST API 我想使用 CORS 来实现这一目标 我的几乎所有请求都是 不简单 的 这意味着对于所有非 GET 请求 浏览器必须发送预检请求 为了限制预检 选项请求的数量 我尝试让浏览器缓存选项请求 这
  • 如何识别 Rails 应用程序中的路线

    我有这个非常基本的问题 我正在用这个仪表板导轨发动机 https github com gottfrois dashing rails 这给了我一个views layouts dashing dashboard html erb 这是仪表板
  • Lombok Builder 注释引发 UnsupportedOperationException

    我在我的项目中使用 Lombok 我的模型看起来像 Builder Data AllArgsConstructor public class ScreenDefinitionDTO Singular private List