問題タブ [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 に答える
151 参照

java - インターフェイスで不変ライブラリを使用する方法

不変オブジェクトを DTO オブジェクトにしたいと考えています。そのために、 http://immutables.github.io/を使用したいと思います。

次のレガシー階層があります。

下位互換性を維持するために、以下に示す新しいインターフェイスと実装を実装したいと考えています。

これにより、ImmutableInterface3 クラスが生成され、ビルダーを取得してクラス実装をビルドできるようになります。

問題は、次のステートメントを使用できないことです。

このソリューションに問題はありますか?

0 投票する
1 に答える
871 参照

java - Immutables ライブラリで Jackson PropertyNamingStrategy を使用する方法

Jackson でhttps://immutables.github.io/ライブラリを使用しています。クラスをジャクソンでシリアライズ可能にしたい。カスタムPropertyNamingStrategy(使用するように構成された)com.fasterxml.jackson.databind.ObjectMapperを使用し たいmapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

残念ながら、Immutables ライブラリは@JsonProperty("propertyName")、生成されたコードのすべてのフィールドに置きます。@com.fasterxml.jackson.databind.annotation.JsonNamingこれは、マッパー レベル (またはアノテーションを使用してクラス レベル) で定義された PropertyNamingStrategy をオーバーライドします。

不変ライブラリがすべてのフィールドにプロパティ名を入れないようにすることは可能ですか (org.immutables.value.Value.Styleまたは同様の手段を使用して)?

@JsonProperty (値なし) をすべてのプロパティに配置するという回避策が用意されていますが、これには満足していません。

0 投票する
1 に答える
1142 参照

java - Immutables ライブラリでオプション フィールドのシリアル化をスキップする方法

Immutables ライブラリ ( https://immutables.github.io ) を使用しています。クラスを JSON にシリアル化する必要があります (私は Jackson を使用しています)。出力 JSON のオプション フィールドをスキップしたい。Immutables の前は@JsonInclude(JsonInclude.Include.NON_EMPTY)、クラス レベルで提供していました。

Immutables はその注釈を尊重していないようです。すべての Optional フィールドに注釈を付けると、正常に@JsonInclude(JsonInclude.Include.NON_EMPTY)機能します。

クラスレベル(フィールドレベルではない)の注釈を使用して、空のオプションのシリアル化をスキップするようにイミュータブルに指示することは可能ですか? わかりorg.immutables.value.Value.Style#additionalJsonAnnotationsましたが、それを使用して渡されたカスタマイズされた注釈はありません。

クラスパスに jackson-datatype-jdk8 がありcom.fasterxml.jackson.databind.ObjectMapper

mapper.registerModule(new Jdk8Module().configureAbsentsAsNulls(true));

0 投票する
1 に答える
365 参照

java - Java Immutables ライブラリ: すべてのオプションが空かどうかを確認しますか?

不変Optionalのすべてのメンバーが空かどうかを判断したいと思います。既知のオプションをすべて手動でチェックせずに、これを自動的に行う方法はありますか?

Optional メンバーごとにチェックを書いたとしても、後で誰かがやって来て、そのメソッドを更新せずに Optional フィールドを追加するのではないかと心配しています。

0 投票する
1 に答える
341 参照

java - Java 不変キューへの要素の追加

誰かが私の小さな問題で私を助けてくれることを願っています. インターフェイスの不変キューに従って、このように EmptyQueue と NotEmptyQueue を定義しました。主な問題は、要素を myQueue に追加するメソッド enQueue が機能していないことです。Plsは私を助けてください:

インターフェース:

空のキュー:

NotEmptyQueue: