問題タブ [auto-value]
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.
android - AutoValue: ClassCastException: LinkedTreeMap をキャストできません
まず、gson と autovalue-gson 拡張でレトロフィットを使用しています
ここをチェックしてください:https://github.com/rharter/auto-value-gson
APIには、APIがid、説明など、メッセージの配列を含むjsonを返す別のモデルがありますが、これらのメッセージは、必要なソーシャルメディアの種類(facebook、twitter、instagramなど)によって異なる場合があります。だから私はこのようなモデルを作りました:
ご覧のとおり、typetoken も AutoValue typeAdapter に渡しましたが、すべてが機能しているように見えます。既に json 全体をログに記録していますが、それをモデルとして使用しようとすると問題が発生します。
メソッド getList() は、これらのメッセージの配列を返します。これは、例外が発生している行です。
java - AutoValue クラスをサブクラス化するにはどうすればよいですか?
AutoValue 拡張機能を使用して、Parcelable Android クラスを生成しています。ドキュメントには、ある @AutoValue が別の @AutoValue を拡張できないことが具体的に記載されています: https://github.com/google/auto/blob/master/value/userguide/howto.md#inherit
別の開発者がこれを手伝ってくれて、「共通のフィールドがある場合は、両方の実装が実装するインターフェイスにそれらを配置できます」と提案しました。これは、ライブラリが継承よりも構成を優先していることを意味していると思います。
私は認めます、私はちょっと迷っています。誰かが AutoValue クラスを「サブクラス化」する最も簡単な方法の簡単な具体例を提供できれば幸いです。簡単なクラスを次に示します。
いくつかの追加フィールドを持つ Customer という別の @AutoValue クラスが必要です。また、@AutoParcelGson は私が使用している @AutoValue 拡張機能ですが、同じ動作です。
android - 自動値で Retrofit 2.0 を使用する
ここからAutoValueライブラリを使用しようとしています
TypeAdapterFactory
Web サービス呼び出しに Retrofit 2.0 を使用していますが、すべての Web サービス要求が HTTP 要求エラー 400 で失敗しました。さらに調査したところ、 を設定して Retrofit Builder に渡す必要があることがわかりました。
この回答は、Retrofit 2 で AutoValue を使用する方法で入手できますか?
しかし、gsonConverterFactory
そこで使われているのは
}
どこrawType.equals(SignIn.class)
で使用されているので、私の質問は、の汎用バージョンを作成する方法はありますか、またはそれぞれの DTO を使用して Web サービス要求ごとAutoValueGsonTypeAdapterFactory
に個別に作成する必要がありますか??AutoValueGsonTypeAdapterFactory
前もって感謝します
java - AutoValue の使用時に JSON を ArrayList に変換できない
や などにAutoValueを使用しています。getter/setter
Parcelable
オブジェクトの JSON 値を格納SharedPreferences
し、必要に応じて取得しています。SharedPreferences
ただし、文字列として保存されているJSON配列を直接ArrayList<T>
使用AutoValue
できないため、に変換しようとすると例外がスローされConstructor
ます。
これが私が得ている例外です-
Model/AutoValue
クラスは次のようになります-
JSON配列文字列を変換しようとするクラスはArrayList<T>
次のようになります-
この行で例外がスローされます -
編集:AutoValue-Extensions
私のAndroid
プロジェクトにはいくつかあります。
アプリ は次のbuild.gradle
ようになります -
android - Android、自動値パラメータ値の編集
オブジェクトに Google Auto-value を使用しており、Builder
クラスとcreate
メソッドを使用してオブジェクトを初期化しました。オブジェクトを再度初期化せずにオブジェクトの特定のパラメータを編集するにはどうすればよいですか?
今私のコードでは、name
プロパティを変更したい(tにはデータが含まれています):