问题标签 [immutables-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
11 浏览

constructor - 是否可以为 Immutables 构建器生成公共默认构造函数以及静态工厂方法?

我正在尝试为具有公共默认构造函数和静态工厂方法的Immutables值定义构建器,即

new CustomerBuilder().name("Joe").age(21).build()

CustomerBuilder.builder().name("Joe").age(21).build()

我希望默认构造函数可用,因为我正在使用带有 DynamoDbEnhanced 客户端的构建器,它期望构建器的公共默认构造函数可用。我更喜欢初始化构建器的静态工厂方式,这就是我希望静态工厂样式也可用的原因。

我可以设置样式中的属性组合来完成此操作吗?这是可用于定义不可变样式的可能注释的参考。

0 投票
0 回答
87 浏览

android - 如何在 Android 中启用对不可变对象的增量注释处理器支持

我想知道在 Android 中为不可变库启用增量注释处理的正确程序是什么。该项目混合了 Java/Kotlin 代码并kapt用于注释处理。在关于这个线程的讨论之后,我在我的模块级build.gradle文件中尝试这个代码:

但是当我构建我的项目时,我收到以下警告:

我错过了什么吗?

0 投票
0 回答
12 浏览

java - 如何查看为不可变库生成的类

如何查看不可变库的生成类,如https://immutables.github.io/generated.html所示

0 投票
1 回答
112 浏览

java - 不可变的有效注释未运行

我正在尝试使用不可变库https://immutables.github.io/ 并使用 javax.validation 验证字段,但是在生成类时注释会被忽略。即使在单元测试中,它也不会引发任何错误。

我的 pom.xml,我尝试添加spring-boot-starter-validationjavax.validation但它只是不会触发验证

0 投票
1 回答
87 浏览

java - Javax 验证不会传递到不可变生成的类

我正在使用 immutables.org 库并希望添加 Javax 注释验证。但我注意到验证没有被带到生成的类。我认为 immutables.org 与验证注释兼容。我有spring-boot-starter-validationjavax.validation依赖项。

不可变

控制器:

pom.xml

0 投票
1 回答
140 浏览

java - Spring Boot 不可变验证仅适用于 get 前缀

我正在尝试在不可变对象上实现 Javax 验证,但我只能通过使用前缀“get”重命名每个变量来使其工作。没有那个“get”就可以让它工作吗?

我的控制器:

0 投票
1 回答
136 浏览

maven - 自定义注释处理器的 Maven 编译器插件问题

我已经编写了一个自定义注释处理器并配置了 maven 编译器插件,如下所示,我面临着我的应用程序类路径中的Immutables注释处理器的问题。当我通过 Maven 编译器插件添加我的注释处理器时,Immutables 给出了编译错误。我的项目中也需要不可变对象。

使用不可变/任何注释处理器以及我的自定义注释处理器的任何提示。

0 投票
0 回答
25 浏览

java - 我可以为 Spring Beans 使用 Immutables 库的 Modifiable 吗?

我正在使用 Spring Boot Java API。我们有一系列 HandlerInterceptorAdapter 类,我们的 API 调用在它们到达控制器之前会经过这些类。我们有一个数据对象,它在通过这些拦截器时设置了它的字段。该代码由许多团队拥有,因此对该架构进行根本更改并不是一个真正的选择,至少在这个问题的范围内。

我们目前将此对象作为 Lombok 构建器传递,并在需要读取字段时沿途调用 build()。这对我来说感觉不太好,总的来说,我们正在尝试将这个项目从 Lombok 移开并使用 Immutables 库。

阅读 Modifiable 的文档,似乎这就是我想要使用的。我已经尝试创建一个作为 Modifiable 对象的 bean,但是 Spring CGLIB 类的某些内容使 setter 方法无法连接到 Modifiable 对象本身。它看起来运行正常,但实际上没有设置任何字段。

FWIW,我还必须配置 Modifiable 类@Value.Style(create = "new")以防止它成为final.

我也尝试过对一个Immutable.Builder没有运气的班级做同样的事情。

是否可以以Modifiable这种方式使用库?从概念上讲,它似乎非常适合这个用例。

0 投票
1 回答
165 浏览

java - 具有可选字段的不可变值类的杰克逊序列化

我正在使用不可变库(https://immutables.github.io)。

我的班级如下所示:

我使用以下方法构建不可变类对象:

我的输出是:

相反,我想看到的是:

我怎样才能让它像那样工作?

0 投票
0 回答
41 浏览

java - org.keycloak:keycloak-spring-boot-starter 依赖与 org.immutables 不兼容并导致 'application/json;charset=UTF-8' 不支持

导入依赖后抛出异常org.keycloak:keycloak-spring-boot-starter。没有对代码进行其他更改。

例外:

DTO

经过一些调试,很明显只有当构建器具有多个相同属性的方法时才会发生这种情况List<String>

如果只有一种方法,一切都会按预期工作。使用带有 getter 和 setter 的“简单”DTO 类也可以。

不幸的是,身份验证是在最新阶段添加的,并且需要大量返工才能更改当前代码。有没有办法解决这个问题并使两个依赖项相互兼容?