問題タブ [android-guava]

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 投票する
2 に答える
319 参照

android - Android 2.2 : Guava クラスの java.lang.NoClassDefFoundError

Android 2.2デバイスを使用java.lang.NoClassDefFoundError: com.google.common.collect.SortedMultisets$NavigableElementSetしています。

Android 2.2 エミュレーターでも同じクラッシュが発生します

ただし、 Android 4.xデバイスではそのエラーは発生しません。

build.gradleは持っています:

なぜこうなった?

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

android - ImmutableMap は、Intent を通過すると HashMap に変換されます

Android プロジェクトで Guava コレクションを使用しています。次の動作に気付きました。

Activity1

Activity2

2 番目のスニペットのコードが実行されると、次の例外がスローされます。

java.lang.ClassCastException: java.util.HashMap を com.google.common.collect.ImmutableMap にキャストできません

したがって、ある時点でImmutableMapに変わりHashMapます。それはなぜなのか、これを回避するにはどうすればよいのでしょうか。

PSインテントを構築/受信した直後にこれをデバッグ出力に出力すると:

0 投票する
2 に答える
1125 参照

android - Guava EventBus と Singleton: 同期

Guava EventBus の動作原理について質問があります。私のオブジェクトは EventBus に登録されています。10 秒間隔でメッセージが送信され、そこで処理が行われ、オブジェクト内の変数とシングルトン値を比較します。いくつかの基準によって、シングルトン値を変更します。Guava のドキュメントを調べましたが、同期の問題に関する情報は見つかりませんでした。

これは正しい方法ですか?

よろしく

0 投票する
2 に答える
1964 参照

collections - Google Guava - 単一のプロパティで複数の入力をフィルタリングする

Google Guava に入ったばかりで、強力なツールのように思えます。Predicates を使用して特定のプロパティでフィルター処理する方法がわかります。私の質問で述語を連鎖させる方法FluentIterableは、単一のプロパティをフィルタリングする最良の方法です。

たとえば、車のコレクションがあるとします。Cars.getPaintColor() をフィルタリングして、黒、赤、および黄色の車を取得するにはどうすればよいですか? 3 つの別個の述語を作成して FluentIterable を使用するのは、扱いにくいようです。特に私の使用では、同じプロパティに 10 個以上のフィルターが必要になる可能性があり、10 個の述語を作成したくありません。

ありがとうございます!

リストを使用しているため、ImmutableSet を作成するときcopyOfに代わりに使用しました。of

構成の 2 番目のパラメーターに何を入力すればよいかわかりません。私はそれがこのようなものだと推測しています... CarObj クラスで。

0 投票する
2 に答える
1501 参照

android - Guava が限界に達している Android プロジェクト

Android プロジェクトで Guava を使用しています。Gradle ビルドに失敗する 65k メソッドの制限に達しています。これは、proguard を使用することで解決できることがわかりました。リリース ビルドで Proguard を実行すると、正常に動作します。デバッグが難しくなるため、デバッグビルドでproguardを実行したくありません。これを解決する方法があるかどうか疑問に思っていましたか?私が検討している 1 つのオプションは、ローカルの guava.jar をビルドし、それを Maven Central からプルする代わりに依存関係として定義することです。これを行うより良い方法はありますか?

0 投票する
0 に答える
160 参照

java - 「x」項目ごとにリストをフィルタリングする最良の方法

listView があり、このリストビューのデータの新しい「ページ」のように 10 秒ごとに表示しようとしています。

そのために、5 項目ごとにデータのリストに一種のフィルターを使用します。

このコードの最後に、最大サイズが 5 のさまざまなリストを含むリスト「ページ」があります。たとえば、次のようになります。

ここでの私の目標は、これらのページを繰り返し処理して、10 秒ごとに新しいページを表示することです。listView とアダプターを使用してページを閲覧する本のように。

アダプターを 10 秒ごとに呼び出し、データを交換してインターフェイスを更新するタイマーがあります。

現時点ではすべてが機能していますが、この仕事をするために毎回新しいリストを再作成する必要があります。

毎回新しいリストを再作成するこの複雑なカスタム フィルターを使用する代わりに、"listToFilter" でフィルター (私は Java8 を使用していません) を使用するだけの解決策があるかどうかを知りたいです。

編集:

グアバでRangeを使用してこれを管理する方法を見つけました。リストで参照するアイテムの範囲を定義できます。しかし、現時点では、それをどのように使用し、カスタム オブジェクトを使用して範囲リストを反復処理するかはまだわかりません。

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

gradle - 出力 jar にグアバ ライブラリを含める方法は?

build.gradle に次の依存関係があります。

コンパイル時に機能し、出力 jar がソース コード用に生成されます (グアバ ライブラリの com.google.common.collect.Maps などのクラスを使用します)。

出力jarをdexファイルに変換するdexタスクがあります:

問題は、出力 jar にグアバの依存関係がないことです。そのため、dex に変換され、Android デバイスにプッシュされてそこで実行されると、java.lang.ClassNotFoundException: 見つかりませんでしたクラス com.google.common が発生します。 .collect.Maps

他のソース コードから出力 jar を生成する javaCompile タスクの出力 jar に含まれる guava 依存関係を取得する方法はありますか? 事前にどうもありがとうございました!

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

java - グアバにSortedMultiMapはありませんか?

ソートされたマルチマップを取得する方法を見つけようとしています。私の問題を解決できる2つの別々のコレクションデータ構造を提供するGuavaをチェックしました。印象的なのは、SortedSetMultimap が同一のキーを含むことができないことです。これは、Multimap が同じシンボル内にある間は Set であるためです。どうしたの?

編集

C++ では、私は Java で同様の機能を使用する方法を教えてくれることを願っています。

英語で: 値に含まれる何らかのオブジェクトを参照する double のペアであるキーを持つマップが必要です。マップには同一の複数のキーが含まれる可能性があるため (2 つの数値の同じペアが発生します)、これはマルチマップまたはバッグである必要があります。これが発生すると、要素をコレクションに挿入できます。最上位の要素を選択すると、それらのいずれかを返す必要があります (どちらでもかまいません)。コレクションを変更可能にする必要があるのは、反復ごとに、より少ない要素を選択してマップから削除するためです。

0 投票する
0 に答える
113 参照

java - Android で Guava を使用してユーザー入力を検証するにはどうすればよいですか?

私の Android アプリには、ユーザー入力を取得するために使用する特定のフォームがあります。

これらの入力を検証して、次のような特定の条件を確認する必要があります。

  • 空です
  • は数字です
  • ...

Google guava を使用してユーザー入力を検証するにはどうすればよいですか?