问题标签 [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 投票
1 回答
405 浏览

java - 注释奇怪地从 Immutables 接口传递到实现

我正在使用 Immutables 为这个接口生成不可变的:

但是生成的类字段对我来说看起来很奇怪:

private final java.lang.@Size(max = 10) String name;

请参阅注释java.lang.前缀的垃圾。@Size有了它 - 验证无法按预期工作。

手动删除它 - 一切正常。这种行为的原因可能是什么?检查 2.5.4-2.5.6 版本

0 投票
1 回答
3376 浏览

java - Immutables don't generate code with java 9 with modules

Using immutables-library works fine with java 9 until I add a module-info.java to the project, Immutables*.java will no longer be generated.

To the module-info I add 'requires value' as suggested by IntelliJ.

What am I missing, is it a immutables-library issue or something else I need to set up in order for javac to find the annotation processing.

I am using maven with the maven-compiler-plugin:3.7.0configured for target/source = 9.

0 投票
1 回答
448 浏览

java - 使用不可变对象创建 TreeMultimap

我目前正在使用不可变对象来构造具体对象。我在尝试创建TreeMultiMap.

错误:它期望在OrderKey创建地图时进行比较,如何使用不可变对象设置比较器来创建TreeMultiMap

0 投票
1 回答
1621 浏览

java - 不可变库将 @Nullable 添加到 equals() 方法

我有一个非常简单的类并使用 Immutables 库。自动生成的代码定义了 equals 方法,如下所示:

@Nullable 注释会导致以下 FindBugs 错误:

NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION:方法收紧参数上的空值注释

方法应该始终实现它覆盖的方法的协定。因此,如果方法采用标记为@Nullable 的参数,则不应在子类中使用该参数为@Nonnull 的方法覆盖该方法。这样做违反了该方法应处理空参数的约定。

我正在使用 Immutables-value-2.5.6.jar

有没有人看到这个错误?

我通过添加以下内容暂时缓解了这个问题:

到不可变类。但我不认为这是一个长期的解决方案。一定还有其他我想念的东西。

0 投票
1 回答
113 浏览

android - 将 Proguard 应用于 Retrofit2 和 GSONAdapters 的致命错误

我正在尝试在我的应用程序上设置 proguard,但遇到以下错误:

我无法提出解决此问题的 proguard 配置。这就是我现在在 gson proguard 文件中的内容:

编辑:这是来自 build.gradle 的相关依赖项

0 投票
1 回答
835 浏览

java - 如何为不可变对象设置 APT,以便 Intellij Idea 识别生成的代码?

我正在考虑从 maven 迁移到 gradle,在这种情况下,gradle 本身似乎工作正常,但 Idea 无法识别 Immutables 生成的源代码。

在 APT 上阅读了这篇博文,这就是我得到这个的原因。

有关更多代码,请参见bitbucket

让我感动的一件事是,根据我的尝试,生成的 java 要么最终出现在out目录中,要么build出现在类路径中,当然到目前为止,这些都不能解决问题。

我该如何解决这个问题,以便 Idea 可以看到生成类型的来源(这样它就不会全部以红色突出显示)?

0 投票
2 回答
7515 浏览

java - 如何让 GitHub 的 Immutables 在 IntelliJ + Gradle 中工作

我使用 GitHub 的Immutables库进行 Android 开发,现在我也想在后端尝试一下。

在 Android 中,为了使用该库,我需要做的就是:

当我尝试将上述依赖项复制到build.gradle我的 Java 项目中时,出现此错误:

我尝试providedcompileOnlyand替换compile,但是@Value.Immutable没有生成带有注释的接口的实现。

我如何使它工作?

0 投票
0 回答
177 浏览

java - 为什么 package-info.java 中声明的 immuables 库样式不适用于 java 9 项目中的子包?

有关详细信息,请参阅https://github.com/originalrusyn/java9_immutables

因此,以下配置适用于 sourceCompatibility = 1.8

p.package-info.java

构建.gradle

pbBjava

为什么它会为 sourceCompatibility=1.9 生成 pbImmutableB.java 而不是 pbBBuilder.java?

0 投票
1 回答
1311 浏览

mongodb - immutable mongo 一些必需的属性没有设置

我正在使用不可变对象与 MongoDB 进行交互。我在下面创建一个非常简单的示例:-

当我创建一个对象时

我得到一个例外,如下所示: -

我也尝试了以下方法,但它也不起作用。

我在这里做错了什么?

谢谢,

阿马尔

0 投票
1 回答
1275 浏览

kotlin - 将 Kotlin 与生成的 Java 类集成

我们使用注解处理框架(Immutables)从接口生成 Java 类。

现在我必须从 kotlin 类访问这些生成的类。虽然在 Java 中这很好用,但 Kotlin 编译器却找不到它们。

这是maven配置:

Kotlin 版本是 1.2.10(但与 1.2.20 相同)。交换插件声明没有帮助。我该如何配置?