問題タブ [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.
java - インターフェイスで不変ライブラリを使用する方法
不変オブジェクトを DTO オブジェクトにしたいと考えています。そのために、 http://immutables.github.io/を使用したいと思います。
次のレガシー階層があります。
下位互換性を維持するために、以下に示す新しいインターフェイスと実装を実装したいと考えています。
これにより、ImmutableInterface3 クラスが生成され、ビルダーを取得してクラス実装をビルドできるようになります。
問題は、次のステートメントを使用できないことです。
このソリューションに問題はありますか?
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 (値なし) をすべてのプロパティに配置するという回避策が用意されていますが、これには満足していません。
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));
java - Java Immutables ライブラリ: すべてのオプションが空かどうかを確認しますか?
不変Optional
のすべてのメンバーが空かどうかを判断したいと思います。既知のオプションをすべて手動でチェックせずに、これを自動的に行う方法はありますか?
Optional メンバーごとにチェックを書いたとしても、後で誰かがやって来て、そのメソッドを更新せずに Optional フィールドを追加するのではないかと心配しています。
java - Java 不変キューへの要素の追加
誰かが私の小さな問題で私を助けてくれることを願っています. インターフェイスの不変キューに従って、このように EmptyQueue と NotEmptyQueue を定義しました。主な問題は、要素を myQueue に追加するメソッド enQueue が機能していないことです。Plsは私を助けてください:
インターフェース:
空のキュー:
NotEmptyQueue: